Есть ли смысл разделять таблицы на части, чтобы отделить часто используемые данные от редко используемых? - PullRequest
4 голосов
/ 19 марта 2012

Скажем, у меня была таблица с 60 нечетными столбцами, но в 99% случаев я выбираю только 3 или 4 из них. Имеет ли смысл разделять таблицу на одну таблицу из 4 столбцов и одну таблицу из 56 столбцов с соотношением 1: 1 между строками. Это спасет меня что-нибудь? Есть ли разница в производительности между извлечением 1000 строк из 4 столбцов из таблицы из 4 столбцов и извлечением 1000 строк из 4 столбцов из таблицы из 60 столбцов?

Я использую "MySQL 14.14 Distrib 5.1.49 для debian-linux-gnu"

Ответы [ 2 ]

1 голос
/ 19 марта 2012

В других СУБД вы можете достичь этого путем вертикального разбиения . Имея такую ​​функцию, вы можете разделить таблицу на несколько разделов по вертикали - это означает разделение по столбцам.

Это имеет преимущества перед тем, как делать это вручную, как вы хотите. Это не разрушает ваш дизайн таблицы и является прозрачным для программиста, пишущего SQL для этих таблиц. Работа выполнена на более низком уровне, и это хорошо.

Я бы подождал, если вам действительно понадобится эта дополнительная производительность. И, возможно, MySQL поддерживает вертикальное разбиение того или иного дня. Не разрушайте раскладку стола до тех пор, пока вам это не понадобится.

0 голосов
/ 19 марта 2012

Это зависит от производительности вашей БД.Если у вас высокий коэффициент попадания в кеш, поэтому ваша таблица кэшируется, то нет смысла разбивать таблицу.Только если для многих операций выбора из таблицы БД необходимо прочитать данные с дисков, это может быть хорошей идеей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...