MySQLルックアップテーブルに関するアドバイスが必要です

MySQLルックアップテーブルに関するアドバイスが必要です

約 200 個のテーブルを持つ MySQL データベースがあります。そのうち 50 個は、2 フィールドの小さな「ID-データ」ルックアップ テーブルです。これらの DB のいくつかは共有サーバー上でホストされています。テーブルが多すぎることに関連するパフォーマンスの問題があるため、共有ホスティング環境のテーブルの合計数を減らす必要があると通知されました。

私の質問は、50 個の 2 フィールド ルックアップ テーブルを 'id-field_name-data' フィールドを持つ 1 つの 3 フィールド テーブルに統合できるかどうか、または統合すべきかどうかです。たとえこれが可能だとしても、PHP ユーザー アプリケーションで多くの作業が必要になります。もう 1 つの選択肢は、DB を専用サーバーに移動することですが、ホスティング コストがはるかに高くなります。

少なくともユーザー アプリケーションの観点からは、200 個のテーブルを持つ DB が、この共有ホスティング サーバーでパフォーマンスの問題を引き起こしているとは思えません。1 つのクエリで結合されるテーブルは 10 個を超えることはありませんが、これらの DB で phpmyadmin によって生成される非常に遅いクエリがいくつか見られました。

答え1

次の条件を満たす場合は、「id-field-data」アプローチを使用できます。

1- テーブルに含まれるレコードが多すぎないため、最終的なテーブルはそれほど大きくなりません。

field2-検索を高速化するためにフィールドにインデックスを作成します。

3- PHP コードの変更は難しくなく、壊れないように管理しやすい方法で行うことができます。

4- コード/テーブルの別のコピーを作成し、完了したら不要なテーブル/コードを削除します。

関連情報