這是一個Amazon Aurora實例。Amazon Aurora突然使用錯誤索引
我有一個查詢做得很好,並且使用了具有高基數的索引p_date(datetime)。
但自從最近幾天以來,查詢需要很長時間。我查看了Newrelic事務日誌,發現使用了一個不同的索引狀態(VARCHAR),它具有非常低的基數。
通過解釋查詢,我可以看到它使用索引交集以及另一個鍵也是低基數是客戶端ID。
所有指數從一開始就在那裏。在大多數查詢中,我們在where子句中使用p_date和status。
爲什麼數據庫想要突然使用這個索引有什麼原因嗎?代碼中沒有更改,因此SQL查詢是相同的。然而,上述表格中,我從上週刪除了大量的行(從3個表中的9k-15k)。他們可以成爲一個原因嗎?我在這些表上使用隨機UUID作爲主鍵。
我是否需要運行「分析表」或類似的東西?我應該刪除該索引?不確定這是否會對性能產生影響。
我保留了數據庫實例的默認數據庫參數組。那裏需要做什麼調整?
謝謝你。這是在最初創建模式時完成的。只有在使用其他索引時發現記錄更快才能使用它,因爲沒有合適的選擇。我現在在查詢中重要的字段中添加了一些複合索引,並刪除了那些無用的索引:) – James