Не так давно писал цикл постов про нормальные формы. Сегодня хочу еще рассказать про обратную процедуру — денормализацию.
Что такое денормализация? Это намеренное внесение изменений в нормализованную схему бд, после которых она перестает соответствовать правилам НФ.
Для чего это делается? Основная цель — это увеличение производительности ценой увеличения избыточности, возможных коллизий, а также некоторым неудобством составления сложных выборок.
Когда то давно я делал глупые сравнения — быстродействие бд и файлов на предмет чтения из них. Вся прелесть баз в том, что можно задать целую кучу критериев для выборки, чего в файлах сделать нереально. Естественно, база уступит в простом чтении файлу.
Но иногда базы имеют настолько сложную структуру, что при выполнении выборки перелопачиваются сотни тысяч строк кода и это сказывается на быстродействии. И если схема нормализованна, то запрос будет идти уже не к одной таблице, а ко многим (в зависимости от числа сущностей). Что в свою очередь, увеличит время выполнения запроса еще в N раз.
Вот в таких случаях идет под нож структура бд и все данные намерянно помещаются в меньшее число таблиц. Чаще всего так делают, когда к базе идут, в основном, запросы на чтение. Таким образом уменьшается число соединений между таблицами.
One response
Do you want to comment?
Comments RSS and TrackBack Identifier URI ?
Trackbacks