У меня есть таблица с ~ 20 столбцами.
-----------------------------------------------------------------
GUID_PK | GUID_SET_ID | Col_3 | Col_4 | ... | Col_20
-----------------------------------------------------------------
Могут быть тысячи Sets
, каждый из которых имеет от десятков до менее тысячи записей. Все записи в наборе связаны друг с другом. наборы полностью независимы друг от друга. Весь набор читается/записывается одновременно в одной большой транзакции. После записи запись всегда доступна только для чтения, никогда не изменяется, только для чтения. Данные редко удаляются из этой таблицы. при его удалении весь набор удаляется за один раз.
Только SET_ID
является входящим внешним ключом. PK
— это исходящий внешний ключ к другой таблице. в таблице подробностей хранится около 3 или 4 записей (каждая из которых представляет собой отдельный большой двоичный объект) на основную запись.
Вопрос: должен ли я разбивать таблицы? Думаю, да. Мой босс думает лучше. он хочет, чтобы таблицы создавались динамически, один мастер, одна деталь для каждого набора. Лично мне не нравится идея динамического создания, но я боюсь архитектуры «одна таблица, чтобы управлять ими всеми».
Массовые вставки и массовые выборки определенно повлияют на производительность. Массовое удаление снова изменит порядок индексов. Какой должна быть оптимальная структура?
Col_x
, заполняются? или только некоторые? - person Stephan   schedule 04.07.2013GUID_SET_ID
с помощью хэша dev. mysql.com/doc/refman/5.1/en/partitioning-hash.html - person Stephan   schedule 04.07.2013