2017-01-26 9 views
0

using the consoleは、データベース参照でインデックスが使用されているかどうかを判断する方法はありますか?検索中にActiveRecordがインデックスを使用したかどうかを確認しますか?

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

指数はすぐにこれを見つけるために使用されたかどうかを判断する方法はありますか?

私はインデックスを追加しましたが、特定のルックアップに使用されていることを確認します。あなたはこれをチェックすることができ

おかげ

+3

あなたは 'User.where(名称:「ボブ、状態: 'デラウェア')を行うことができます。クエリを説明するためのDBを取得するために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

関連する問題