SQL и Qt 65

SQL и Qt

Партиционирование таблиц: горизонтальное разделение данных

Введение Для очень больших таблиц (миллионы и десятки миллионов строк) даже хорошо проиндексированные операции могут стать заметно медленнее из-за самого размера таблицы — партиционирование разделяет одну логическую таблицу…

SQL и Qt

Денормализация для производительности vs нормализация для целостности

Введение Статья 403 уже разбирала денормализацию подробно — в этой, более короткой статье блока производительности явно сводим воедино компромисс между нормализацией (статья 402, целостность и минимизация избыточности) и…

SQL и Qt

N+1 проблема и пакетная загрузка данных

Введение N+1 — распространённая, легко допускаемая (особенно при использовании ORM, статья 436) проблема производительности: вместо одного эффективного запроса, получающего все нужные данные сразу, код выполняет один запрос для…

SQL и Qt

Антипаттерны производительности: SELECT *, неиспользуемые индексы, неявные преобразования типов

Введение В заключительной статье блока производительности собираем воедино несколько практических антипаттернов, упоминавшихся по отдельности в подводных камнях предыдущих статей (включая саму статью 394) — рассматриваем их систематически как…

SQL и Qt

PostgreSQL: особенности, JSONB, расширения

Введение Большинство примеров предыдущих блоков цикла использовали синтаксис PostgreSQL как ориентир — в этой статье разберём, что делает PostgreSQL особенным среди реляционных СУБД: расширяемость через систему плагинов, и…

SQL и Qt

MySQL/MariaDB: особенности, InnoDB vs MyISAM

Введение MySQL (и его открытый форк MariaDB) — один из самых широко используемых движков СУБД, особенно в веб-разработке. В статье разберём ключевую особенность MySQL — выбор движка хранения…

SQL и Qt

SQLite: встраиваемая БД, особенности и использование с Qt (QSqlDatabase)

Введение SQLite принципиально отличается от PostgreSQL/MySQL (статьи 423-424) — это не отдельный серверный процесс, к которому приложение подключается по сети, а встраиваемая библиотека, работающая непосредственно в процессе самого…

SQL и Qt

Microsoft SQL Server: T-SQL особенности

Введение Microsoft SQL Server — широко используемая в корпоративной среде (особенно в организациях, уже глубоко интегрированных с экосистемой Microsoft) СУБД со своим процедурным диалектом T-SQL — в статье…

SQL и Qt

Различия диалектов SQL между СУБД: практические примеры

Введение Предыдущие статьи блока (423-426) разобрали особенности конкретных СУБД по отдельности — в этой статье явно сводим воедино самые частые, практически значимые различия синтаксиса между ними в виде…

SQL и Qt

Миграции схемы БД: инструменты и практики (Flyway, Liquibase, Alembic)

Введение Схема БД развивается во времени вместе с приложением (статья 402, заключительная оговорка) — миграции дают систематический, версионируемый способ применять и отслеживать изменения схемы согласованно между разными окружениями…