4

各セットに約 30,000 行の 8 セットのデータがあります。データは言語が異なるだけで同じ構造です。

サイトのフロント エンドは、比較的高いトラフィックを取得します。

したがって、私の質問はMySQLのパフォーマンスに関するものです。データが属するセット(列「言語」)を区別するために1つの列を持つ単一のテーブルが必要な場合、または言語セットごとに個別のテーブルを作成する必要がある場合はどうすればよいですか?

(可能であれば理由の説明が本当に役に立ちます)

よろしくお願いします

4

4 に答える 4

5

私は単一のテーブルのデザインに行きます。適切なインデックスを使用したシーク時間は、テーブルの「幅」に関係なく、まったく同じである必要があります。

パフォーマンスの問題は別として、これにより設計と他のテーブル (外部キーなど) との関係が簡素化されます。

于 2009-07-23T09:02:12.847 に答える
2

「言語ごとに 1 つのテーブル」設計のもう 1 つの欠点は、スキーマを追加するたびにスキーマを変更しなければならないことです。

言語列は、邪魔にならないデータを追加するだけでよいことを意味します。後者は行く方法です。

于 2009-07-23T10:01:28.830 に答える
2

私もワンテーブルデザインで行きます。language_key のカーディナリティは非常に低いため、インデックスを定義する代わりに、language_key でテーブルを分割します。(データベースがサポートしている場合。)

于 2009-07-23T10:12:14.953 に答える
0

他の回答に同意します-単一のテーブルを使用します。パフォーマンスの最適化に関しては、多くのことがパフォーマンスに大きな影響を与える可能性があります。

  • 適切な索引付け
  • クエリ効率のための書き込み/テスト
  • 適切なストレージ エンジンの選択
  • ハードウェア
  • ファイルシステムのタイプと構成
  • mysql 構成設定の最適化

...など 私はハイパフォーマンスMySQLのファンです

于 2009-07-23T13:10:39.877 に答える