Mysql vs Oracle XE vs Postgresql. Масштабируемость и производительность, что выбрать? [закрытый]

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

установка:

Я работаю с существующим PHP-приложением, использующим MYSQL. Почти все таблицы используют движок MYISAM и содержат миллионы строк по большей части. Одна из самых больших таблиц использует конструкцию EAV которая необходима но влияния на представлении. Приложение было написано, чтобы лучше использовать кэш MYSQL. Он просит ярмарку количество запросов на загрузку страницы (частично из-за этого) и достаточно сложно, чтобы пройти через большинство таблиц всей БД при каждой загрузке страницы.

плюсы:

  • бесплатно
  • таблицы MYISAM поддерживают полнотекстовые индексы, которые важны для приложения

плюсы:

  • С тем, как все настроено, MYSQL ограничен одним процессором для всего приложения. Если один очень требовательный запрос запустить (или сервер под нагрузкой) будут очереди все остальные делает безответный сайте
  • кэширование MYSQL и отсутствие " WITH "или" INTERSECT " означает, что мы должны разбить наши запросы, чтобы лучше использовать кэш. Таким образом, умножая количество запросов. Например, использование подзапросов над несколькими таблицами с миллионами строк (даже с приличной индексацией) оказывается большой проблемой с текущей / восходящей нагрузкой и ограничением, выложенным в точке выше (CPU использование)

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

три рассматриваемых варианта-либо продолжать использовать mysql, но с двигателем INNODB, таким образом, мы можем использовать больше мощности процессора. Адаптируйтесь к Oracle XE и получите лицензию, когда нам нужно масштабировать базу данных 4Gb, 1GB RAM или 1 CPU limit (все из которых мы еще не попали). Или адаптироваться к PostgreSQL

поэтому вопросы :

  • как потеря полнотекстовой индексации повлияет на производительность в трех случаях (имеет ли oracle или postgreSQL эквивалент?)
  • как oracle и postgreSQL используют кэш в подзапросах, с помощью операторов UNION/INTERSECT
  • как Oracle и PostgreSQL используют многоядерную / cpu мощность (если / когда мы получаем oracle лицензия)

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

Если вам нужна дополнительная информация, просто дайте мне знать

спасибо заранее, ребята, помощь приветствуется.

1 ответов


PostgreSQL поддерживает полнотекстовый поиск и индексов. Подробности здесь.

и он может использовать любое количество ядер процессора. Он создает отдельный процесс для каждого сеанса + некоторые дополнительные процессы поддержки. Подробности здесь.

PostgreSQL не имеет встроенного кэширования запросов, но для этой цели существует множество утилит с открытым исходным кодом.