В общем вот как я понял ситуацию:
1) Порядка 40 столбцов в таблице это нормально (понятно что с нормализацией все нормально, т.е. все столбцы реально к примеру описывают order line, т.е. в тему) и переживать не стоит
2) Можно вынести в отдельную таблицу только если этот столбец используется очень редко (как мне кажется заморачиваться с разделением на таблицы в таком случае нужно только если столбец используется очень редко, к примеру в 1% запросов)
Правильно я понимаю?
Следующие вопросы к тем кто на практике занимается вертикальным партицированием:
1) Замеряли ли вы реальную разницу в скорости работы? Какие результаты?
2) Какие минусы вы встретили после этого
И еще давайте разберем конкретный пример.
Допустим есть таблица order_lines, в ней порядка 40 столбцов. Теперь потребовалось приделать комментарий к order line. Добавил поле Comment. Через год потребовалось узнать время в которое был поставлен комментарий, чтобы к примеру можно было посмотреть все проставленные комментарии за сегодня. Собираюсь добавить столбец TSComments типа TIMESTAMP.
Вы бы сделали так же?
Хотя возможно можно вынести Comments + TSComment (+ завтра может понадобиться указывать пользователя который проставил комментарий) в отедльную таблицу. Но действительно ли от этого будет толк. Вдруг этим я только распложу кучу таблиц и потом буду дополнительно тратить время на джоины, который к тому же будут немного замедлять запрос?
Вот так вот и терзаюсь в незнании как лучше и правильнее