SQL и Qt 65

SQL и Qt

Триггеры: автоматическая реакция на изменения данных

Введение Триггер — функция, автоматически выполняемая СУБД при определённом событии модификации данных (INSERT/UPDATE/DELETE) для конкретной таблицы — статья 403 уже использовала триггер для поддержания денормализованного значения; в этой…

SQL и Qt

Хранимые процедуры и функции: серверная логика в БД

Введение Хранимая процедура/функция — блок процедурной логики, сохранённый и выполняемый непосредственно внутри СУБД, а не в коде клиентского приложения — статья 410 уже использовала функции для реализации триггеров;…

SQL и Qt

Курсоры: построчная обработка результатов на стороне СУБД

Введение Большинство SQL-операций (статьи 394-401) работают с результатом запроса целиком, как с набором — курсор даёт альтернативный, построчный способ обработки результата непосредственно на стороне СУБД (внутри хранимой процедуры/функции),…

SQL и Qt

Индексы: B-tree, принцип работы и когда они помогают

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

SQL и Qt

Составные индексы и порядок столбцов

Введение Индекс может охватывать не один, а несколько столбцов одновременно (составной, или многостолбцовый индекс) — в статье разберём, как порядок столбцов в таком индексе критично влияет на то,…

SQL и Qt

Покрывающие индексы (covering index) и include-столбцы

Введение Обычный индекс ускоряет поиск нужных строк, но после нахождения строки СУБД обычно всё равно обращается к самой таблице за дополнительными данными, не входящими в индекс (так называемый…

SQL и Qt

EXPLAIN/EXPLAIN ANALYZE: чтение плана выполнения запроса

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

SQL и Qt

Статистика оптимизатора и устаревшая статистика

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