クエリが1つの結果レコードに限定されますが、テーブルに一致する結果が1つしかない場合、大きな(ish)MySQLテーブルのパフォーマンスが向上しますか?例クエリを1つのレコードに制限するとパフォーマンスが向上する
select * from people where name = "Re0sless" limit 1
ため
その名前を持つ1つのレコードだけがある場合は?そして、name
がプライマリキー/ユニークに設定されていたらどうなりますか?クエリを更新する価値があるのか、それとも最小限の利益になるのでしょうか?
フル・テーブル・スキャンを防止するか、フル・テーブル・スキャンを早期に停止させますか?レコードが存在しない場合は、完全なフル・テーブル・スキャンを実行する必要があります。 –
はい、そうです。それは、それが "完全なテーブルスキャンを防ぐ"ことができると言っているはずです。投稿を調整します –
ここで重要なことは、理解しているように、制限を追加するとクエリが高速になる可能性がありますが、遅くならないことです。他に何もない場合、あなたの状況が思ったほどユニークではない状況をデバッグする必要がある場合に備え、将来の開発者にあなたの意図を明確に伝える役割も果たします。私は常に1つの結果が出るたびに制限句を追加することを習慣にしています。既存のインデックスが既にあなたのためにそれをしていたかどうかを知ることは、無駄な脳の力です。 – GrandOpener