tgoop.com/smart_data_channel/150
Last Update:
Всем привет. Давно не писал на канале, так что буду исправляться.
Мы продолжаем тему SQL и баз данных, и сегодня я хочу рассказать о 4-х типах объектов, которые встречаются в большинстве СУБД: base table (таблица), temporary table (временная таблица), view (представление), materialized view (материализованное представление).
Решил написать небольшую шпаргалку с описанием этих объектов и в каких случаях какой объект использовать или не использовать.
Base table - классическая таблица. На логическом уровне это выделенное пространство на диске или в памяти, где хранятся данные, которые мы загрузили в эту таблицу.
Базовая таблица является основой для создания других объектов в базе данных.
Temporary table - временная таблица, которая, как правило, существует в рамках одной сессии подключения к базе данных. Простыми словами, если вы подключились к базе данных, создали временную таблицу, использовали её для своих нужд и разорвали соединение, то в рамках следующей сессии этой таблицы уже не будет.
Когда использовать: временные таблицы могут быть полезными, если вы часто обращаетесь к данным большой базовой таблицы (base table) в рамках одной сессии. Это, в свою очередь, может замедлять скорость работы и потреблять большое количество вычислительных ресурсов, что сильно снижает эффективность. Поэтому, вы можете создать временную таблицу на базе основной для хранения промежуточных результатов и писать запросы уже к ней, что может сильно повысить производительность.
Когда не использовать: временные таблицы лучше не использовать для сложной логики запросов и вычисляемых полей. Для этих задач больше подходят views (представления).
View - по сути, это хранимый SQL-запрос, который содержит в себе направления к данным, которые хранятся в основных таблицах. Т.е. представление хранит не данные сами по себе, а направление к ним.
Когда использовать:
- для хранения сложной логики запросов к основным таблицам. Например, для джоинов часто используемых таблиц, для вычисляемых столбцов и метрик. Представления устраняют избыточную работу для получения данных из базовых таблиц: вместо того, чтобы постоянно описывать ту же самую логику в запросах к основным таблицам, мы можем писать запросы ко view, которые уже содержат эту логику;
- для предоставления доступа только к определённым полям в основной таблице для групп пользователей. Представления являются хорошей опцией для того, чтобы обезопасить данные от нежелательного доступа. Например, вы хотите предоставить информацию о работниках, но не хотите предоставлять информацию об их зарплате.
Когда не использовать: со временем базовые таблицы могут становиться всё больше, и сложный запрос во view становится всё медленее, что делает анализ данных очень долгим и неудобным. Чтобы устранить просадку в производительности, мы можем материализовать результаты запроса, который хранится в представлении. Для этой задачи и существуют materialized views.
BY Smart Data
Share with your friend now:
tgoop.com/smart_data_channel/150