SQL
Области для изучения
Типы данных (авто инкремент, blob)
CRUD operations (select, insert, update, delete)
Функции aggregate (max, min, iif, sum)
JOINs (left, right, inner, outer)
Distinct
Группировка
Подзапросы
Индексы (PK, FK, суррогатные индексы), управление подключением индексов
Последовательность применения группировок и сортировок
Производительность выборки, профилирование, планы запросов
Уровни изоляции транзакций (dirty read, read committed, repeatable read)
Хранимые процедуры и триггеры
1-5 нормальные формы хранения данных
Best practices
Избегать использования бизнес логики SQL сервера (хранимые процедуры и триггеры)
Использовать Restrictions, индексы для поддержания целостности данных который бы запрещал вставку дубликатов.
Использовать поля createdAt, updatedAt в каждой таблице. При обновлении указывать where updatedAt = <date> чтобы избежать ситуации перезаписывания уже обновленной записи.
Пытаться использовать 3ю нормальную форму для хранения данных, использовать денормализацию только для решения проблем с производительностью.
Шардировать данные, создавать несколько таблиц для общей сущности для ускорения выборок, в таблицах с 10M+ строк. Например address_a, address_b .. address_z: адреса начинающиеся с разных букв находятся в разных таблицах.
Рекомендуемая литература
Мартин Грубер. Понимание SQL
Интерактивный SQL тренажер
Нарастающий итог в SQL https://habr.com/ru/post/474458/
Last updated
Was this helpful?