My-Sql データベースでより高速な検索クエリを作成しようとしています。
テーブルに 800,000 行ありBOOKMARK
ます。
このクエリで実行すると
SELECT * FROM `BOOKMARK` WHERE `topic` = 'Apple'
Showing rows 0 - 29 ( 501 total, Query took 0.0008 sec)
めちゃめちゃ速い!
各行の合計ポイントがあり、最初に良いものを見つけたいです。
SELECT * FROM `BOOKMARK` WHERE `topic` = 'Apple' ORDER BY total DESC
Showing rows 0 - 29 ( 501 total, Query took 0.4770 sec) [b_total: 9.211558703193814 - 1.19674062055568]
0.5秒になりました!!
これは私にとって大きな問題です。
テーブル情報はこちら。
* There are 20,000 different topics in this table.
* total number exist between 0-10
* The server calculate total points once a day.
テーブルが各トピックの総数で並べられている場合、検索クエリに「ORDER BY total DESC」を含める必要はないと考えていました。
テーブルが注文を 1 日 1 回チェックすると、多くの時間を節約できます。
これを実現する方法はありますか?