2017-01-26 31 views
0

有什麼辦法,using the console來確定數據庫查找是否使用索引?確定ActiveRecord在查找過程中是否使用了索引?

例如:User.where(name: 'Bob', state: 'Delaware').first

有沒有一種方法,以確定是否被用於快速發現這是一個索引?

我已經添加了索引,但想要驗證它們正在用於某些查找。

感謝

+3

你可以做'User.where(名稱: '鮑勃',狀態: '特拉華')。explain'得到分貝解釋查詢 –

回答

3

你可以用這個檢查:

User.where(name: 'Bob', state: 'Delaware').explain 

請記住,一個指標並不能使查詢更快所有的時間,在某些情況下,指數可能進行查詢運行速度較慢,有些數據庫試圖識別這一點,甚至可能也不使用這個索引。

檢查索引的基數:

https://www.lullabot.com/articles/slow-queries-check-the-cardinality-of-your-mysql-indexes

保重!

http://edgeguides.rubyonrails.org/active_record_querying.html#running-explain

相關問題