導入 データベースを使用したことがある人なら、機能面での like 記号と = 記号の類似点と相違点をご存知でしょう。ここで簡単にまとめてみましょう。 1. 相違点: Like はあいまい検索に使用できますが、'=' はこの機能をサポートしていません。次の例のように、フィールド ID の最初の文字が 1 である情報テーブルのデータをクエリします。 ID が '1%' のような情報から * を選択します。 2. 類似性: 正確な検索には、「like」と「=」の両方を使用できます。 たとえば、次の例はすべて、フィールド ID が '12345' に等しい info テーブルの結果をクエリします。 IDが '12345' のような情報から * を選択します。 上記は、返される結果における like と '=' の類似点と相違点です。すると、好奇心旺盛な友人たちは、処刑のプロセスはどうなっているのかと尋ねるかもしれません。 MySQL の実行プロセスは、like または '=' に遭遇しても同じですか? そうです、物事は見た目だけで判断してはいけません。よく調べてみると、「いいね」と「=」はそれほど単純ではないことがわかります。以下では、この2つの違いを詳しく分析します~~~ 文章 まず、MySQL の explain キーワードを紹介します。explain は実行プランを意味します。つまり、このコマンドを使用してこの SQL がどのように実行されるかを確認します。 説明 select * from info where id like '12345'; 次に、explain を使用して like および = の下にあるクエリをテストします。まず、インデックス付きフィールドをテストします。 説明選択 * から crms_顧客 どこ id = '7cf79d7c8a3a4f94b5373b3ec392e32d'; ここで、「=」を「like」に置き換えて試してみましょう。 説明選択 * から crms_顧客 どこ id は '7cf79d7c8a3a4f94b5373b3ec392e32d' のようになります。 比較すると、返された 2 つの結果の type フィールドと Extra フィールドのデータが異なっていることがわかります。なぜ異なるのでしょうか。また、どのような意味があるのでしょうか。 タイプフィールド タイプ フィールドはオプションの値であり、値は次のように最低パフォーマンスから最高パフォーマンスの順に並べ替えられます。
表からわかるように、const は定数検索、RANGE はインデックス列の範囲検索なので、パフォーマンスが明確に反映されています。 では、like クエリを使用する場合、Extra フィールドは何を表すのでしょうか?追加フィールドの「どこを使用する」とはどういう意味ですか? 追加フィールド 1. Extra フィールドも Explain 出力の非常に重要な列であり、MySQL クエリ オプティマイザのクエリ実行プロセス中のクエリ プランの重要な補足情報を表します。 2. Extra フィールドで where を使用すると、ストレージ エンジンが行を取得した後に MySQL サーバーがフィルタリングすることになります。したがって、「=」を使用する場合と比較して、検索プロセスに 1 つのステップが追加されます。 明らかに、上記の要約から、条件付きクエリにインデックス フィールドを使用する場合、 '=' のパフォーマンスは like よりも高速であると結論付けることができます。 これで終わりだと思いますか? しかし、 インデックス以外のフィールドについてはどうなのかと尋ねる友人もいるかもしれません。 はい、インデックスされていないフィールドのテストを続けましょう。 説明選択 * から crms_顧客 どこ customer_name = '張飛'; ----------------------------------- 説明選択 * から crms_顧客 どこ customer_name LIKE '張飞'; 「=」を除いて同じ 2 つのステートメントを実行してみましょう。 のように: 非インデックスフィールドの場合は、like と "=" は同じであり、パフォーマンスに違いがないことがわかります。 (もちろん、explain には他にもたくさんのフィールドがあり、後ほど一つずつ説明していきます。) 結論は 絶え間ない努力の結果、like と "=" を非インデックス フィールドを使用してクエリした場合、パフォーマンスは同じであるという結論を導き出すことができます。インデックス フィールドを使用する場合、"=" はインデックスに直接ヒットし、一度だけ読み取られますが、like は範囲クエリを必要とするため、"=" の方が like よりもパフォーマンスが優れています。 ~~~~ これで、MySQL の like and = パフォーマンスの最適化に関するこの記事は終了です。MySQL の like and = パフォーマンスに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
MySQL ページング分析の原理と効率改善PERCONA PERFORMANCE CONFERENC...
基本的な3列レイアウト 。容器{ ディスプレイ: フレックス; 幅: 500ピクセル; 高さ: 20...
この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...
効果 HTML を実装するには、まずクリーンな HTML ページを準備し、ノードを記述します。 &l...
背景私は新しいプロジェクト チームに配属されたので、プロジェクトでは js を使用する必要があります...
mysql コマンドを入力します: mysql -u+(ユーザー名) -p+(パスワード) mysq...
コンポーネントの基本1 コンポーネントの再利用コンポーネントは再利用可能な Vue インスタンスです...
1. IE では、相対的な配置、つまり <div style="background...
watch : データの変更を監視する(特定の値の変更イベント) vue2.x データ(){ 戻る ...
目次序文v-model の修飾子:怠け者トリム番号さまざまな入力タイプやその他の要素での v-mod...
新しい CSS プロパティ contain を紹介する前に、読者はページの再描画と再配置が何であるか...
W3C は HTML の標準をいくつか確立していますが、ブラウザは独自の定義済みスタイルに従って W...
データが変更されても、DOM ビューはすぐには更新されません。変更直後にノードまたはその値を取得しよ...
1. アイデアMySQL に 1,000,000 件のレコードを挿入するのにたった 6 秒しかかかり...
HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...