Next:
1 Введение
PostgreSQL: настройка производительности
Алексей Борзов (Sad Spirit)
borz_off@cs.msu.su
Оригинал:
detail.phpclub.net
(
http://oc.cs.msu.su/club/
)
1 Введение
1.1 Не используйте настройки по умолчанию
1.2 Используйте актуальную версию сервера
1.3 Стоит ли доверять тестам производительности
2 Настройка сервера
2.1 Используемая память
2.1.1 Общий буфер сервера:
shared_buffers
2.1.2 Память для сортировки результата запроса:
sort_mem
2.1.3 Память для работы команды VACUUM:
vacuum_mem
2.2 Журнал транзакций и контрольные точки
2.2.1
fsync
и стоит ли его трогать
2.2.2 Уменьшение количества контрольных точек
2.2.3 Прочие параметры
2.3 Free Space Map: как избавиться от VACUUM FULL
2.4 Прочие настройки
2.4.1 Оценка объёма кэша ОС:
effective_cache_size
2.4.2 Сбор статистики
2.5 Диски и файловые системы
2.5.1 Перенос журнала транзакций на отдельный диск
3 Оптимизация БД и приложения
3.1 Поддержание базы в порядке
3.1.1 Команда VACUUM
3.1.2 Команда ANALYZE
3.1.3
pg_autovacuum
3.1.4 Команда REINDEX
3.2 Использование индексов
3.2.1 Команда EXPLAIN [ANALYZE]
3.2.2 Использование собранной статистики
3.2.3 Возможности индексов в PostgreSQL
3.2.3.1 Функциональные индексы
3.2.3.2 Частичные индексы (partial indexes)
3.2.3.3 Полнотекстовый поиск
3.3 Перенос логики на сторону сервера
3.4 Оптимизация конкретных запросов
3.4.1 SELECT max(...)/min(...) FROM <огромная таблица>
Проблема
Решение
3.4.2 SELECT count(*) FROM <огромная таблица>
Проблема
Решение
3.4.3 SELECT ... WHERE ... IN (SELECT ...)
Проблема
Решение
4 Заключение
Bibliography
2003-12-10