Назад | Перейти на главную страницу

MySQL и PostgreSQL на одном оборудовании

Недавно мы купили новое оборудование для сервера базы данных, который намеревались посвятить работе PostgreSQL. Однако теперь у нас есть требование также запускать MySQL, поскольку некоторое программное обеспечение, которое мы хотим использовать, поддерживает только эту базу данных. Поскольку хранилище на этом компьютере является наиболее подходящим для размещения БД, и в настоящее время у нас нет бюджета на дополнительное оборудование, мы думаем запустить их оба на одном сервере.

Есть ли какие-либо предостережения или передовые методы, о которых нам следует знать?

Мой единственный полезный совет по этому поводу: храните файлы журнала транзакций Postgres на отдельном физическом диске от ваших хранилищ данных Pg и / или MySQL, которые, вероятно, могут сосуществовать. Журналы транзакций представляют собой огромные блоки последовательной записи, и Pg будет выполнять много много лучше, если вы можете сохранить этот ввод-вывод последовательным путем изоляции, а не позволять ему рандомизироваться со всеми другими вводами-выводами хранилища данных.

Это действительно зависит от вашей нагрузки. Большая разница между MySQL и PostgreSQL заключается в том, что MySQL предварительно выделяет свои буферы данных при запуске, а затем управляет ими самостоятельно, а PostgreSQL вместо этого полагается на кеширование файлов ОС. Представьте себе ситуацию, когда файловый кеш ОС становится слишком маленьким, и тогда производительность PostgreSQL падает. Несколько активных баз данных MySQL на одном и том же хосте «знают» друг о друге, потому что они используют одни и те же внутренние структуры данных, но PostgreSQL обычно не ожидает одновременной работы СУБД на одном хосте. Я запускаю PostgreSQL и MySQL на одном хосте при довольно большой нагрузке и, наконец, столкнулся с нехваткой файлового кеша ОС, и мне пришлось перенести PostgreSQL на отдельный хост.

Я запускал базы данных среднего размера, используя оба механизма баз данных, и обнаружил, что он не хуже двух или более активных баз данных на одном и том же движке. Кажется, не имеет значения, что использует кэш памяти или пропускную способность диска, или много ли используется только на одном.

Не зная ничего о том, какие нагрузки вы ожидаете, довольно сложно дать действительно содержательный ответ, но вкратце:

Нет реальных технических проблем с запуском обеих систем на одном компьютере, и на самом деле многие (большинство?) Провайдеров виртуального хостинга делают именно это.