[解決済み】MYSQLのORとINの性能比較
2022-04-14 18:26:38
質問
以下のような性能の違いがあるのでしょうか?
SELECT ... FROM ... WHERE someFIELD IN(1,2,3,4)
SELECT ... FROM ... WHERE someFIELD between 0 AND 5
SELECT ... FROM ... WHERE someFIELD = 1 OR someFIELD = 2 OR someFIELD = 3 ...
それとも、コンパイラがコードを最適化するのと同じように、MySQL が SQL を最適化するのでしょうか?
EDIT:
AND
を
OR
は、コメントにあるような理由からです。
解決方法は?
回答された内容では、その理由が説明できません。
以下、『ハイパフォーマンスMySQL 第3版』から引用します。
<ブロッククオート多くのデータベースサーバーでは、IN()は複数のOR句の同義語に過ぎず、この2つは論理的に同等であるためです。MySQL ではそうではなく、IN() リストの値をソートし、値がリスト内にあるかどうかを確認するために高速バイナリ検索を使用します。これはリストのサイズに対して O(Log n) であるのに対し、同等の一連の OR 節はリストのサイズに対して O(n) です(つまり、大きなリストではかなり遅いのです)。
関連
-
MySQLによる既存テーブルのパーティショニングの実装
-
[解決済み】MySQLのエラーコードです。MySQL WorkbenchでUPDATE中に1175のエラーが発生しました。
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] MySQLのAUTO_INCREMENTをリセットする方法
-
[解決済み] JOINとINNER JOINの違いについて
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL演算子(and, or, in, not)の具体的な使用方法
-
MySql認証ベースのvsftpd仮想ユーザー
-
MySQLインストールチュートリアル(Linux版
-
[解決済み] ユニークなテーブル/エイリアスではない
-
[解決済み] [GROUP BY句に含まれるか、集約関数で使用される必要があります。
-
Mysql がエラーを報告 オペランドには 1 つのカラムが含まれている必要があります。
-
Djangoマイグレーションエラー 外部キー制約を追加できない
-
[解決済み] INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOINの違いは何ですか?[重複しています]。
-
[解決済み] MySQLのクエリ結果をCSV形式で出力するにはどうすればよいですか?
-
[解決済み] SQLのWHERE句におけるINとORの比較