1ミルレコードのテーブルの問題は、AND id > 34000 LIMIT 10
ではありません。 またはLIMIT 34000, 10
それは構造と残りのクエリ次第です。つまり、クエリを高速化するには、インデックス、PK、FKが必要です。また、Order byを使用すると、クエリが遅くなる可能性があります。検索をlike '%text%'
クエリが遅くなります。また、それはテーブルのエンジン次第です
したがって、制限10を変更しても大きな違いが生じるとは思わないでください。 「より良い」クエリを決定するのに役立つツールがいくつかありますが、すべてのクエリが同じように機能するわけではないため、「最良の解決策」は存在しないため、期待しないでください。
Show create table
を使用できます またはDescribe select ......
またはexplain
何が起こっているかを確認するか、コマンドbenchmark
を使用してください 関数を改善するために適用している関数のおおよその時間を確認するには
編集:
MySQL用のいくつかのツールパフォーマンスのこの部分で役立つこのプログラムを確認することをお勧めします。
- Mysqlslap(ベンチマークに似ていますが、結果をさらにカスタマイズできます)。
- SysBench(CPUパフォーマンス、I / Oパフォーマンス、ミューテックス競合、メモリ速度、データベースパフォーマンスをテストします)。
- Mysqltuner(これにより、一般的な統計、ストレージエンジンの統計、パフォーマンスメトリックを分析できます)。
- mk-query-profiler(SQLステートメントの分析を実行します)。
- mysqldumpslow(ウィッチクエリが問題を引き起こしていることを知っておくとよいでしょう)。