ORM的美麗讓我陷入了酣睡。我有一個缺乏數據庫索引的現有Django應用程序。有沒有辦法自動生成需要索引的列列表?有沒有辦法自動生成需要索引的列的列表?
我在想也許有些中間件記錄哪些列涉及WHERE子句?但有什麼內置到MySQL可能有幫助嗎?
ORM的美麗讓我陷入了酣睡。我有一個缺乏數據庫索引的現有Django應用程序。有沒有辦法自動生成需要索引的列列表?有沒有辦法自動生成需要索引的列的列表?
我在想也許有些中間件記錄哪些列涉及WHERE子句?但有什麼內置到MySQL可能有幫助嗎?
是的,有。
如果你看一看的slow query log,有一個選項--log-queries-not-using-indexes
號
添加索引不管三七二十一所有「慢」的查詢也將插入放緩,更新和刪除。
索引是快速查詢和快速更改之間的平衡操作。沒有一般或「正確」的答案。當然沒有什麼能夠實現這一點。
您必須在添加和更改索引時測量整個應用程序的改進。
太糟糕了,沒有關於更通用的解決方案的文章,就像提到的中間件一樣。 – ohnoes 2009-01-13 10:50:44
上面提到的中間件只會顯示索引的候選列,而慢速查詢日誌會顯示實際的建議(這可能因爲特定於MySQL的服務器優化而有所不同)。 – zgoda 2009-01-13 11:44:28