Ответ
Оптимизация БД включает несколько ключевых методов:
- Индексы – ускоряют поиск, но замедляют вставку/обновление. Пример:
CREATE INDEX idx_user_email ON users(email);
-
Нормализация – устранение избыточности данных (3NF и выше).
-
Денормализация – сознательное дублирование для ускорения чтения.
-
Партиционирование – разделение таблиц на части (по диапазонам, хэшу).
-
Кэширование – Redis/Memcached для частых запросов.
-
Оптимизация запросов –
EXPLAIN ANALYZE, избеганиеSELECT *. -
Настройка сервера – буферы, пулы соединений (например,
innodb_buffer_pool_sizeв MySQL).
Пример плохого запроса и оптимизации:
-- До:
SELECT * FROM orders WHERE DATE(created_at) = '2023-01-01';
-- После:
SELECT id, total FROM orders
WHERE created_at BETWEEN '2023-01-01 00:00:00' AND '2023-01-01 23:59:59';