私は 'hot'(redditアルゴリズム)という列を持つテーブル 'posts'を持っています。 「ホット」、10進数です:XXXXX、XXXXXXX小数点以下の列のORDER BYクエリのMySQLインデックス
これは私のクエリです:
SELECT * FROM posts ORDER BY hot DESC
は、今私は、このクエリは「ホット」のためにインデックスを使用したいと思います。私は、インデックスが実際に作成されたことを私に示してpostsから
ADD INDEX hot_index(hot)
とSHOW INDEXESを試してみました。
しかし、前に 'EXPLAIN'を付けてクエリを実行すると、MySQLがインデックスのインデックスを使用していないことがわかります。どうして?どうすれば変更できますか?
ありがとうございました!
あなたはINDEX(hot_indexをUSEの記事* FROM 'SELECT'クエリを作る 'のUSE INDEX(hot_index)でヒンティングインデックスを試みることができます)ORDER BY HOT DESC'しかし、多分MYSQLはあなたのインデックスを本当の助けとして割り引いていません – RiggsFolly
ああ、それは残念なことに助けになりません。私も小数点の代わりにINTを使ってみましたが、それでも何も変わりません。 – Hillcow
"SELECT * FROM POST ORDER BY hot DESC"が使用されているクエリの場合、テーブルからすべての行が必要であり、オプティマイザはFullテーブルスキャンのため無視します。 RiggsFollyが、インデックスを確実に使用したい場合は、クエリでUSE INDEXまたはFORCE INDEXヒントを試すことをお勧めします。 – DeeJay14