2009-07-23 2 views
4

У меня есть 8 наборов данных из примерно 30 000 строк для каждого набора, данные одинаковы для разных языков.Производительность MySQL: одна таблица или несколько таблиц

Передняя часть сайта получит относительно высокий трафик.

Итак, мой вопрос касается производительности MySQL, если у меня должна быть одна таблица с одним столбцом, чтобы отличить, какой набор данных принадлежит (например, coloumn "language") или создавать отдельные таблицы для каждого набора языков?

(объяснение о том, почему, если это возможно было бы действительно полезно)

Заранее спасибо Шади

ответ

5

Я бы с одной конструкции стола. Время поиска с соответствующим индексом должно быть точно таким же, независимо от того, как «широкая» таблица.

Помимо проблем с производительностью, это упростит дизайн и отношения с другими таблицами (внешние ключи и т. Д.).

2

Еще один недостаток дизайна «один стол на язык» заключается в том, что вам нужно менять схему каждый раз, когда вы ее добавляете.

Языковой столбец означает, что вам просто нужно добавить данные, которые не являются навязчивыми. Последний путь.

+0

Вы можете сделать это с нормальными отношениями: translationStrings (Stringid, строка), переводы (Stringid, LanguageID, перевод) - это может добавить еще одно соотношение/внешний ключ/join on select, но добавляет гибкость. – leafnode

2

Я бы пошел с дизайном с одним столом. Поскольку мощность language_key очень низкая, я бы разбил таблицу на language_key вместо определения индекса. (если ваша база данных поддерживает его.)

0

Я согласен с другими ответами - я бы использовал один стол. Что касается оптимизации производительности ряд вещей, которые имеют потенциал, чтобы иметь большее влияние на производительность:

  • соответствующих индексации
  • записи/тестирования для повышения эффективности запросов
  • Chosing соответствующий механизм хранения (ов)
  • аппаратные
  • типа и конфигурации файловой системы (ов)
  • параметры конфигурации оптимизации MySQL

... и т.д. Я фанат High Performance MySQL

 Смежные вопросы

  • Нет связанных вопросов^_^