💻 Примеры
⚡ Кратко: 💻 примеры
Summary session 11 соединяет два блока: индексы и пользовательские функции.
Индекс ускоряет поиск, сортировку или группировку, но занимает место и замедляет изменения данных.
EXPLAIN показывает план выполнения и помогает проверить, использует ли MySQL индекс.
Пользовательская функция создаётся через CREATE FUNCTION и возвращает одно значение через RETURN.
Минимальный пример повторения: CREATE INDEX idx_age ON employees(age); и SELECT square_root(25);.
Топ-3 ошибки: индексировать всё подряд, не смотреть EXPLAIN, путать функцию с процедурой.
Пример 1. Индекс по возрасту
CREATE TABLE employees (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(100),
age INT,
salary INT,
department_id INT
);
CREATE INDEX idx_age ON employees(age);
EXPLAIN
SELECT *
FROM employees
WHERE age = 30;
Индекс имеет смысл, если таблица большая и поиск по age выполняется часто.
Пример 2. Составной индекс для сортировки
CREATE INDEX idx_name_age ON employees(name, age);
SELECT *
FROM employees
ORDER BY name, age;
Составной индекс полезен, когда запросы регулярно используют эти столбцы вместе.
Пример 3. Вызов функции
SELECT square_root(25);
SELECT calculate_age('1990-01-01');
SELECT greet_user('Alice');
Функции вызываются как выражения и возвращают значения в результат запроса.