ホームページ  >  記事  >  データベース  >  MySQL インデックスはいつ作成されますか?

MySQL インデックスはいつ作成されますか?

怪我咯
怪我咯オリジナル
2017-04-01 10:21:411358ブラウズ

インデックスは、データ取得効率を向上させ、データベースのIOコストを削減することができ、インデックスはデータベースのソートコストも削減できます。並べ替え グループ化 操作は主に CPU リソースとメモリを消費するため、並べ替えおよびグループ化操作でインデックスを有効に活用すると、CPU リソースの消費が大幅に削減されます。

インデックスを作成するかどうかを決定するにはどうすればよいですか?
1. クエリ条件
として頻繁に使用されるフィールドについては誰もが知っています。頻繁に教えるとはどういう意味ですか?実行するすべての SQL ステートメントを分析します。それらをすべて 1 つずつリストするのが最善です。その後、分析した結果、一部のフィールドがほとんどの SQL ステートメント クエリで使用されていることが判明したため、それらのフィールドに対してインデックスを作成することにしました。
2. 一意性が低いフィールドはインデックス作成に適していません
一意性が低いフィールドとは何ですか?ステータスフィールドやタイプフィールドなど。 ユーザー ログインステータス、メッセージ ステータスなど、いくつかの固定値のみを保存するフィールド。これにはインデックススキャンの特性が関係します。例: インデックスを通じてキー値 A と B を持つデータを検索し、A を通じて一致するデータを見つけます。このデータは X ページにあり、その後スキャンを続け、A に一致するデータが Y ページに表示されることを確認します。 、その後、ストレージ エンジンはページ X 上のデータを破棄し、ページ X が再度スキャンされ、ページ X が 2 回または複数回スキャンされます。同様に、同じデータ ページが繰り返し読み取られ、破棄され、再度読み取られる可能性があります。これにより、ストレージ エンジンの IO 負荷が大幅に増加することは間違いありません。
3. 更新頻繁に更新されるフィールドはインデックスの作成には適していません
このフィールドのインデックスを作成すると、フィールド データを再度更新するとデータベースが自動的にインデックスを更新します。このフィールドの更新頻度が高すぎる 現時点では、インデックスは常に更新されており、パフォーマンスへの影響が想像されます。数十回取得され 1 回更新されたフィールドのみが、インデックス付けの仕様とより一致しています。また、フィールドが同じ期間内に複数回更新された場合、インデックスを作成できません。
4. where 条件に現れないフィールドはインデックス付けすべきではありません
これは誰もが知っていると思います。


以上がMySQL インデックスはいつ作成されますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。