これはばかな質問かもしれません。私は30M以上のレコードを持っています。Mysql-これは最適化されたクエリですか?
Table 1
Column A(int) - Column B(Boolean) - Column C(int) - Column D(DateTime)
(A、B、C、D)に複合インデックスがあります。
次のクエリです:
Select * from table1 where A=12 and B!=0 ORDER BY C DESC ,D ASC.
Order by C DESC and D ASC
ができませんので。私はレコードを挿入するたびにCに(-1)を掛けて逆ソートしています。
今、私が実行しようとしているクエリは次のようになります。2つのwhere
句の基準とorder by
を考慮
Select * from table1 where A=12 and B!=0 ORDER BY C ASC ,D ASC.
、これ以上のクエリはインデックスをフルに活用するのだろうか?それとも他に良い解決策がありますか?
申し訳ありませんが、現時点ではmysqlデータベースにアクセスできませんでした。このテストを行うにはしばらく時間がかかります。あなたがその状況で仕事をしている背景にある理論を私に教えてもらえれば大丈夫ですか?おそらく私は確信している素晴らしい選択肢を提供しています。 – user1248331
かなり正直なところ、セットアップ、カーディナリティのレコードなどです。基本的に、クエリオプティマイザの背後にある科学技術はかなり繊細で、問題に非常に特化しています。 – qdot