非常に大きなテーブルがある場合、インデックス付けされていない値に対する検索は非常に遅くなる可能性があります。 MySQLの用語では、この種のクエリは「テーブルスキャン」になります。これは、テーブルの各行に対して順番にテストする必要があるという言い方です。これは明らかに最善の方法ではありません。
インデックスを追加すると、読み取りに役立ちます 速度は上がりますが、支払う価格は少し遅くなります書き込み 速度。最適化を行う際には常にトレードオフがありますが、あなたの場合、読み取り時間の短縮は計り知れませんが、書き込み時間の増加はわずかです。
大きなテーブルにインデックスを追加するにはかなりの時間がかかる可能性があるため、本番システムに適用する前に、本番データに対してこれをテストしてください。 ALTER TABLE
の期間中、テーブルはロックされる可能性があります ステートメント。
いつものように、EXPLAIN
を使用してください クエリで実行戦略を決定します。あなたの場合、それは次のようになります:
EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784