序文 私は多くのブログを読み、弊社の 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 をインストールするための実装コード
データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...
コードをコピーコードは次のとおりです。リンクフォントサイズ: 12px;色: #000000;テキス...
NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...
この記事では、検証コードの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...
目次DockerとはクライアントサイドDocker基本的なDocker操作画像名画像をプルするその他...
1.コマンドが見つかりません コマンドが見つかりません2. そのようなファイルまたはディレクトリは...
序文プロジェクトでは中間層としてNodeを使用し、Nodeのデプロイにはdockerを使用します。こ...
最近、業務上のボタンの増加により、ページレイアウトにボタンが多すぎて、ページが美しくなく、ユーザーエ...
1. はじめにここでは apollo について詳しく説明しません。公式サイト https://git...
序文開発プロセスでは、ブラウザレベルでユーザーが実行した操作を記憶するなど、同様の要件に遭遇すること...
フロントエンドで画像をアップロードする原理は、入力 type="file" タグ...
1. ESを使うこともあるリソースが限られている、またはビジネス上のニーズにより、最新の期間のデータ...
Ubuntu 20.04はnetplanを通じてネットワークを管理するため、以前のバージョンとは少...
フォームを作成するときに、名前、携帯電話番号、出生地などの 2 つのフィールドを揃える状況に遭遇する...
数日前、同僚からMySQLのインデックスについて質問を受けました。大体わかっているのですが、まだ練習...