ORM として TopLink を使用し、DB として MySQL を使用しています。
テーブルの 1 つで、自動インクリメント主キーを GUID と交換しました (まあ、そうではありません。実際にはランダムな 64 ビット整数を使用していますが、それで十分です)。
とにかく、キーさえ使用しないクエリは、はるかに時間がかかります。
私に何ができる?
ORM として TopLink を使用し、DB として MySQL を使用しています。
テーブルの 1 つで、自動インクリメント主キーを GUID と交換しました (まあ、そうではありません。実際にはランダムな 64 ビット整数を使用していますが、それで十分です)。
とにかく、キーさえ使用しないクエリは、はるかに時間がかかります。
私に何ができる?
MySQL で innodb テーブルを使用している場合、すべての行がプライマリ キーによって参照されるため、セカンダリ キーを使用している場合はパフォーマンスが低下します。
テーブルがクエリ対象のフィールドによってインデックス付けされている場合。キーのコンテンツがパフォーマンスに顕著な影響を与えることはありません。彼らはおそらくそこに何か他のものがあります。
キー列が実際に PRIMARY KEY であること、つまりクラスター化 (物理) インデックスであることを確認してください。
一般的なクエリにヒットするインデックスがあることを確認してください。
ランダム整数?同じプリキーをヒットする可能性があることを認識していますか?
私は作成日を表すフィールドを持っています。それに応じてテーブルを強制的にインデックスにするにはどうすればよいですか?
create index Table_creationDate on Table(creationDate);