В своей работе меня просили нарушать первую нормальную форму (повторять группы по столбцам, используя пустые / нулевые значения) несколько раз, «ради вычислительной мощности компьютера». В двух словах, в таблице «ученик» должно быть как минимум 8 пустых полей (например, телефоны: phone1, phone2, phone3 ...) вместо моего предложения - таблица «телефон», которая содержит номер телефона (и возможные другие метаданные) и внешний ключ - идентификационный номер студента. Мой начальник говорит, что лучше хранить их таким образом, потому что «меньше циклов ЦП, и это важно для веб-платформ», а не с помощью отношений. Я говорю, что в худшем случае это незначительно.
В этом примере использование отношений (предположим, что таблицы заполнены большим количеством записей в веб-приложении среднего размера) заметно медленнее, чем использование такой схемы таблиц?
источник
Ответы:
Я не понимаю, как кто-то может сделать такое заявление, не имея реальных фактов, подтверждающих это. Если ваши запросы связаны с центральным процессором, вам следует искать способы уменьшить это узкое место.
Похоже, ваш начальник считает, что денормализованная база данных будет работать лучше, но я не знаю достаточно о вашем заявлении, чтобы сказать, правильно это или нет. Какое будет ожидаемое количество удалений, обновлений и вставок для этой таблицы?
Я ожидал бы, что такой денормализованный дизайн может привести к уменьшению процессорного времени, но можно ожидать, что ваш дисковый ввод-вывод увеличится. А физическое чтение с диска будет намного дороже, чем цикл ЦП, поэтому, возможно, у вашего босса есть очень специфическая метрика (ЦП), и в результате он хочет иметь очень специфический дизайн? Если это так, я просто построил бы то, что требуется, и сохранил бы метрики стоимости процессора для выполняемых запросов. Если вы видите увеличение во времени, вы можете предложить некоторые изменения дизайна.
На самом деле, это, вероятно, хорошая идея, чтобы получить список всех показателей, которые хочет видеть ваш начальник, и отслеживать их с течением времени.
источник