各セットに約 30,000 行の 8 セットのデータがあります。データは言語が異なるだけで同じ構造です。
サイトのフロント エンドは、比較的高いトラフィックを取得します。
したがって、私の質問はMySQLのパフォーマンスに関するものです。データが属するセット(列「言語」)を区別するために1つの列を持つ単一のテーブルが必要な場合、または言語セットごとに個別のテーブルを作成する必要がある場合はどうすればよいですか?
(可能であれば理由の説明が本当に役に立ちます)
よろしくお願いします
各セットに約 30,000 行の 8 セットのデータがあります。データは言語が異なるだけで同じ構造です。
サイトのフロント エンドは、比較的高いトラフィックを取得します。
したがって、私の質問はMySQLのパフォーマンスに関するものです。データが属するセット(列「言語」)を区別するために1つの列を持つ単一のテーブルが必要な場合、または言語セットごとに個別のテーブルを作成する必要がある場合はどうすればよいですか?
(可能であれば理由の説明が本当に役に立ちます)
よろしくお願いします
私は単一のテーブルのデザインに行きます。適切なインデックスを使用したシーク時間は、テーブルの「幅」に関係なく、まったく同じである必要があります。
パフォーマンスの問題は別として、これにより設計と他のテーブル (外部キーなど) との関係が簡素化されます。
「言語ごとに 1 つのテーブル」設計のもう 1 つの欠点は、スキーマを追加するたびにスキーマを変更しなければならないことです。
言語列は、邪魔にならないデータを追加するだけでよいことを意味します。後者は行く方法です。
私もワンテーブルデザインで行きます。language_key のカーディナリティは非常に低いため、インデックスを定義する代わりに、language_key でテーブルを分割します。(データベースがサポートしている場合。)
他の回答に同意します-単一のテーブルを使用します。パフォーマンスの最適化に関しては、多くのことがパフォーマンスに大きな影響を与える可能性があります。
...など 私はハイパフォーマンスMySQLのファンです