Алексей Васильев - Работа с PostgreSQL: настройка и масштабирование

Шрифт
Фон

Работа с PostgreSQL: настройка и масштабирование

А. Ю. Васильев aka leopard

Creative Commons Attribution-Noncommercial 4.0 International

20102014

Работа с PostgreSQL: настройка и масштабирование

Введение

Настройка производительности

Введение

Не используйте настройки по умолчанию

Используйте актуальную версию сервера

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

Настройка сервера

Используемая память

Журнал транзакций и контрольные точки

Планировщик запросов

Сбор статистики

Диски и файловые системы

Перенос журнала транзакций на отдельный диск

CLUSTER

Утилиты для тюнинга PostgreSQL

Pgtune

pg_buffercache

Оптимизация БД и приложения

Поддержание базы в порядке

Использование индексов

Перенос логики на сторону сервера

Оптимизация конкретных запросов

Утилиты для оптимизации запросов

Заключение

Партиционирование

Введение

Теория

Практика использования

Настройка

Тестирование

Управление партициями

Важность «constraint_exclusion» для партиционирования

Заключение

Репликация

Введение

Потоковая репликация (Streaming Replication)

Введение

Установка

Настройка

Общие задачи

PostgreSQL Bi-Directional Replication (BDR)

Slony-I

Введение

Установка

Настройка

Общие задачи

Устранение неисправностей

Londiste

Введение

Установка

Настройка

Общие задачи

Устранение неисправностей

Bucardo

Введение

Установка

Настройка

Общие задачи

Репликация в другие типы баз данных

RubyRep

Введение

Установка

Настройка

Устранение неисправностей

Заключение

Шардинг

Введение

PL/Proxy

Установка

Настройка

Все ли так просто?

Postgres-XC

Архитектура

Установка

Распределение данных и масштабируемость

Таблицы и запросы к ним

Высокая доступность (HA)

Ограничения

Заключение

HadoopDB

Установка и настройка

Заключение

Заключение

PgPool-II

Введение

Давайте начнем!

Установка pgpool-II

Файлы конфигурации

Настройка команд PCP

Подготовка узлов баз данных

Запуск/Остановка pgpool-II

Ваша первая репликация

Настройка репликации

Проверка репликации

Ваш первый параллельный запрос

Настройка параллельного запроса

Настройка SystemDB

Установка правил распределения данных

Установка правил репликации

Проверка параллельного запроса

Master-slave режим

Streaming Replication (Потоковая репликация)

Онлайн восстановление

Streaming Replication (Потоковая репликация)

Заключение

Мультиплексоры соединений

Введение

PgBouncer

PgPool-II vs PgBouncer

Кэширование в PostgreSQL

Введение

Pgmemcache

Установка

Настройка

Проверка

Заключение

Заключение

Расширения

Введение

PostGIS

pgSphere

HStore

Пример использования

Заключение

PLV8

Скорость работы

Использование

Заключение

Pg_repack

Примеры

Заключение

Pg_prewarm

Заключение

Smlar

Похожесть

Расчет похожести

Smlar

Пример: поиск дубликатов картинок

Заключение

Multicorn

Пример

PostgreSQL 9.3+

Заключение

Pgaudit

Ltree

Почему Ltree?

Пример

Заключение

PostPic

Fuzzystrmatch

Tsearch2

OpenFTS

PL/Proxy

Texcaller

Pgmemcache

Prefix

Dblink

Заключение

Бэкап и восстановление PostgreSQL

Введение

SQL бэкап

SQL бэкап больших баз данных

Бекап уровня файловой системы

Непрерывное резервное копирование

Настройка

Утилиты для непрерывного резервного копирования

WAL-E

Barman

Заключение

Стратегии масштабирования для PostgreSQL

Введение

Суть проблемы

Проблема чтения данных

Методы решения

Проблема записи данных

Методы решения

Заключение

Советы по разным вопросам (Performance Snippets)

Введение

Советы

Размер объектов в базе данных

Размер самых больших таблиц

«Средний» count

Узнать значение по умолчанию у поля в таблице

Случайное число из диапазона

Алгоритм Луна

Выборка и сортировка по данному набору данных

Quine запрос который выводит сам себя

Ускоряем LIKE

Поиск дубликатов индексов

Размер и статистика использования индексов

Размер распухания (bloat) таблиц и индексов в базе данных

Введение

Данная книга не дает ответы на все вопросы по работе с PostgreSQL. Главное её задание показать возможности PostgreSQL, методики настройки и масштабируемости этой СУБД. В любом случае, выбор метода решения поставленной задачи остается за разработчиком или администратором СУБД.

Настройка производительности

Введение

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

возможностью возложить поддержку целостности данных на СУБД;

независимостью логической структуры данных от физической.

Эти особенности позволяют сильно упростить написание приложений, но требуют для своей реализации дополнительных ресурсов.

Таким образом, прежде чем искать ответ на вопрос «как заставить РСУБД работать быстрее в моей задаче?», следует ответить на вопрос «нет ли более подходящего средства для решения моей задачи, чем РСУБД?» Иногда использование другого средства потребует меньше усилий, чем настройка производительности.

Данная глава посвящена возможностям повышения производительности PostgreSQL. Глава не претендует на исчерпывающее изложение вопроса, наиболее полным и точным руководством по использованию PostgreSQL является, конечно, официальная документация и официальный FAQ. Также существует англоязычный список рассылки postgresql-performance, посвящённый именно этим вопросам. Глава состоит из двух разделов, первый из которых ориентирован скорее на администратора, второй на разработчика приложений. Рекомендуется прочесть оба раздела: отнесение многих вопросов к какому-то одному из них весьма условно.

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке