sql >> データベース >  >> RDS >> Mysql

テーブルのすべての列にインデックスを付ける必要がありますか、それともmysqlデータベースではありませんか?

    インデックスを作成するには追加のディスク領域が必要であり、インデックスが多すぎるとファイルシステムのサイズ制限から問題が発生する可能性があるため、インデックスを作成する正しいフィールドを選択するには慎重に検討する必要があります。

    インデックスはレコード内の一致するフィールドの検索を高速化するためにのみ使用されるため、出力にのみ使用されるインデックスフィールドは、挿入または削除操作を実行するときにディスクスペースと処理時間を無駄にするだけであるのは当然です。避けるべきです。また、二分探索の性質を考えると、データのカーディナリティまたは一意性が重要です。カーディナリティが2のフィールドでインデックスを作成すると、データが半分に分割されますが、カーディナリティが1,000の場合は、約1,000レコードが返されます。このようにカーディナリティが低いと、有効性が線形ソートに低下し、カーディナリティがレコード数の30%を超える場合、クエリオプティマイザはインデックスの使用を回避し、インデックスを効果的にスペースの無駄にします。

    したがって、列のグループにインデックスを追加することをお勧めします。



    1. mysqlでwhereとinnerjoinを使用する

    2. MySQLを使用した.NETCore2.0:指定されたキーが長すぎました。キーの最大長は3072バイトです

    3. jsonの助けを借りてPHP、MySqlを使用してAndroidでユーザーログインクレデンシャルを検証する方法

    4. オフラインで動作し、データを保存し、オンライン時にリモートMySQLと同期できるWebアプリを作成しますか?