序文 私は多くのブログを読み、弊社の DBA を含む多くの人々が、MySql では列に null が含まれている場合、その列を含むインデックスは無効であると言っているのを聞きました。 私は「High Performance MySQL 2nd Edition」と「MySQL Technology Insider - InnoDB Storage Engine 2nd Edition」をざっと読みましたが、これに関する紹介は見つかりませんでした。しかし、ローカルで試してみたところ、null 列は、単一列インデックスでも結合インデックスでもインデックスを使用できるが、is null に限定されていることがわかりました。is not null ではインデックスは使用されません。 その後、列に null が含まれている場合でもインデックスを使用できるという説明が公式ドキュメントに見つかりました。アドレスは https://dev.mysql.com/doc/refman/5.7/en/is-null-optimization.html です。 MySQL 5.6 と 5.7 の両方で動作し、ストレージ エンジンは InnoDB です。 データは次のとおりです。 1. 単一列インデックス 名前列に単一列インデックスを作成します。 名前が null の行をクエリします。 名前が 'test0' または null である行をクエリします。 インデックスが使用できることがわかります。 2. 共同インデックス 年齢と名前に結合インデックスを追加します。 年齢が 14 で名前が null の行をクエリします。 インデックスも使用されていることがわかります。 3. その他 MySQL は null を含む列のインデックスを使用できますが、null がインデックス内の他のデータと同じであることを意味するわけではありません。 列に null を許可することはお勧めしません。 null 以外を制限し、0 や '' 空文字列などのデフォルト値を設定するのが最適です。日付時刻型の場合は、「1970-01-01 00:00:00」などの特別な値に設定できます。 MySQL では、null は特別な値です。概念的には、NULL は「不明な値」を意味し、他の値とは多少異なる方法で扱われます。たとえば、=、<、> などの演算子は使用できません。null に対する算術演算の結果は null になります。null 行はカウントに含まれません。null は空の文字列よりも多くのストレージ スペースを必要とします。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
>>: Ubuntu 18.04 に vsftpd をインストールするための実装コード
MySQL 5.7.8 では json フィールドが導入されました。このタイプのフィールドは使用頻度...
序文:データベースを日常的に使用すると、パスワードが単純すぎて変更する必要がある場合、パスワードの有...
目次序文SVGを生成するSVGスプライトの紹介プロジェクトアイコンを取得するプロジェクトのセットアッ...
目次デコレータパターンの紹介TypeScript のデコレータデコレータの使用デコレーターファクトリ...
以前、単純な UDP サーバーとクライアントの例を書きましたが、その中で、自分自身をクライアントと見...
序文:前回の記事では、注意深い学生であれば発見できたかもしれない DDL ステートメントの使用法を中...
目次1. いくつか2. すべての3. 見つける1. いくつかsome()メソッドは、指定された関数の...
ブロガーはこう述べています。「私は『史上最も簡単な MySQL チュートリアル』という一連のブログ記...
背景MySQL のデッドロックについて言えば、私は以前 MySQL のロックに関する基本的な紹介記事...
序文いわゆるファジークエリとは、ユーザーの完全な入力やすべての入力情報がなくてもクエリサービスを提供...
序文今日、開発者から、コンテナ サービスを停止、rm (docker rm -f)、または強制終了で...
show-header属性を使用したドキュメントのヒントshow-header <el-テーブ...
目次1. 問題2. 解決策オプション1:オプション2: 1. 問題この話は、エラーと脱落率を照会する...
このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 12.19....
目次1. 理論シリアル化可能繰り返し読み取りコミットされた読み取りコミットされていない読み取り2. ...