結合が遅い場合は、テーブルにFOREIGN KEYリレーションシップとインデックスが適切に定義されていないことが原因である可能性があります。以前にテーブルが適切に正規化されていた場合、適切なインデックス付けでパフォーマンスが低下しない限り、テーブルを単一のテーブルに非正規化することはおそらくお勧めできません。 制約では、PKテーブルと関連するFK列の両方にインデックスを付ける必要があるため、制約がまだ存在しない場合にそれらを定義するだけで、パフォーマンスの向上に大いに役立つ可能性があります。FOREIGN KEY
最初のアクションは、非正規化を開始する前に、テーブルの関係が正しく定義され、テーブルにインデックスが付けられていることを確認することです。
マテリアライズドビューと呼ばれる概念があります。これは、ビューのクエリの結果を一時テーブルに格納することにより、結果セットが決定論的であるビューまたはクエリの一種のキャッシュとして機能します。MySQLはマテリアライズドビューを直接サポートしていませんが、マルチテーブルクエリからすべての行を選択し、出力をテーブルに格納することで、マテリアライズドビューを実装できます。そのテーブルのデータが古くなったら、新しい行セットで上書きします。頻繁に変更されないデータを表示するために使用される単純なSELECTクエリの場合、この方法を使用してページの読み込みを高速化できる場合があります。ただし、絶えず変化するデータに使用することはお勧めできません。
マテリアライズドビューの適切な使用法は、サイトのドロップダウンリストに入力する行を作成したり、週に1回だけ実行される複雑なレポートの結果を保存したりすることです。それらの悪い使用法は、顧客の注文情報を保存することであり、これにはタイムリーなアクセスが必要です。