PostgreSQL VS. MySQL: Как размеры их данных сравниваются друг с другом?

StackOverflow https://stackoverflow.com/questions/3490050

Вопрос

Для того же набора данных, в основном текстовых данных, как данные (таблица + индекс) размером PostgreSQL по сравнению с The MySQL?

  • PostgreSQL использует MVCC, что бы предположить, что его размер данных будет больше

  • В этой презентации самый большой сайт блога в Японии говорил о своей миграции с PostgreSQL в MySQL. Одной из их причин ухода от PostGreSQL было то, что размер данных в PostgreSQL был слишком большим (стр. 41):Миграция из PostgreSQL в MySQL в Cocolog, крупнейшее сообщество в блоге в Японии

  • PostgreSQL имеет сжатие данных, так что следует сделать размер данных меньше. Но плагин MySQL также имеет сжатие.

Есть ли у кого-нибудь фактический опыт о том, как размеры данных PostgreSQL & MySQL сравниваются друг с другом?

Это было полезно?

Решение

  • MySQL использует MVCC, просто проверяйте InnoDB. Но в PostgreSQL вы можете изменить FailFactor, чтобы сделать место для будущих обновлений. С этим вы можете создать базу данных, имеющего место для текущих данных, но и для некоторых будущих обновлений и удалений. Когда Autovacuum и Hot выполняют свои вещи, размер вашей базы данных может быть стабильным.
  • Блог о старых версиях, многое изменилось, и PostgreSQL делает гораздо лучшую работу в сжатии, как это делало в старые времена.
  • Сжатие зависит от DataType, конфигурации и скорости. Вы должны проверить, чтобы увидеть, как он работает для вашей ситуации.

Я сделал пару обращений от MySQL в PostgreSQL и во всех этих случаях PostgreSQL составлял около 10% меньше (MySQL 5,0 => PostgreSQL 8,3 и 8.4). Этот 10% был использован для изменения шкафа для заполнения в большинстве обновленных таблиц, они были установлены на заполнение 60 до 70. Скорость была намного лучше (больше проблем с более чем 20 одновременными пользователями), а размер данных также был стабильным, нет MVCC вне контроля или вакуума до далеко позади.

MySQL и PostgreSQL - это два разных зверя, PostgreSQL - это все о надежности, где MySQL является Populair.

Другие советы

Оба имеют свои требования к хранению в их соответствующей документации:

MySQL: http://dev.mysql.com/doc/refman/5.1/en/Storage-Requirements.html.html.
Postgres: http://www.postgresql.org/docs/current/interaction/datatype.html.

Быстрое сравнение двух не показывает никаких вопитков «Poomg Postgres ZOMG, требует 2 мегабайт для хранения битового поля». Я полагаю, что postgres может иметь более высокие метаданные накладные расходы, чем mysql, или должен продлить его файлы данных в более крупных кусках, но я не могу найти ничего очевидного, что postgres "отходы" пространства для которого мигрируют на MySQL.

Я хотел бы добавить, что для больших магазинов столбцов PostGreSQL также использует преимущества сжимания их с использованием «довольно простого и очень быстрого члена семейства методов сжатия LZ».

Подробнее об этом, проверьте http://www.postgresql.org/docs/9.0/static/storage-toast.html.

Это довольно низкоуровневой и, вероятно, не нужно знать, но так как вы используете блог, вы можете извлечь выгоду из него.

О индексах,

MySQL хранит данные Whithin индекса, который делает их огромными. Postgres не. Это означает, что размер хранения индекса B-дерева в Postgres не зависит от количества пропанников колонны, или какой тип данных имеет столбец.

Postgres также поддерживает частичные индексы (например, где статус = 0), который является очень мощной функцией для предотвращения построения индексов в течение миллионов строк, когда требуется всего несколько сотен.

Поскольку вы собираетесь поставить много данных в Postgres, вы, вероятно, найдут это практично, чтобы иметь возможность создавать индексы, блокируя таблицу.

Отправлено из моего Айфона. Извините за плохое написание и отсутствие ссылок

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top