Какая платформа лучше для крупномасштабной базы данных - PullRequest
4 голосов
/ 27 августа 2009

Между Mysql и PostgreSQL, который подходит для очень большого объема данных ... например, для миллионов записей ... я думаю, я должен использовать PostgreSQL ... какие-нибудь предложения, ребята?

Ответы [ 4 ]

5 голосов
/ 27 августа 2009

Я использовал как в похожих ситуациях, так и размер БД, по-видимому, не влияет на их масштабирование по-разному. PostgreSQL является гораздо более полным и надежным и намного лучше поддерживает сложные запросы и их оптимизацию, в то время как MySQL может показывать лучшую скорость поиска для чрезвычайно простых запросов; но эти аспекты не зависят от размера вопроса.

4 голосов
/ 27 августа 2009

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

В какой-то момент масштабирование становится выбором между двумя вариантами: масштабировать, покупая более крупное оборудование, или масштабировать, вводя новые машины (с которыми вы можете передавать данные, использовать их в качестве подчиненных реплик или пытаться настроить мастер-мастер). и у Posgres, и у MySQL есть решения различного уровня качества для такого рода вещей).

Несколько миллионов строк табличных данных помещаются в память стандартного сервера в наши дни; если это все, что вы делаете, вам не нужно беспокоиться об этом - просто оптимизируйте любую базу данных, с которой вам удобнее, чтобы гарантировать, что созданы правильные индексы, все кешируется (и где-то вроде memchached используется там, где это уместно) и т. д.

Люди упоминают, что Facebook использует MySQL; это вроде как правда. Отчасти потому, что они на самом деле используют сотни (тысячи сейчас?) Баз данных mysql, причем все они несут ответственность за свое небольшое сечение данных. Если вы думаете, что можете загрузить facebook в экземпляр MySQL (или postgres, или oracle) ... ну, они, вероятно, хотели бы услышать от вас; -).

Как только вы попадаете в терабайтную землю, все становится сложнее. Существуют специализированные решения, такие как Vertica, Greenplum, Aster Data. Существуют различные "nosql" хранилища данных, такие как Cassandra, Voldemort и HBase. Но я сомневаюсь, что вам нужно пойти на такой крайности. Просто купите немного больше оперативной памяти.

4 голосов
/ 27 августа 2009

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

Быстрее? Более надежный? Разрешает репликацию? Может делать более сложные запросы? Подходит ли ваше приложение «шардингу», и в этом случае вы, вероятно, хотите базу данных, которая может кластеризоваться и администрироваться легче, или Вам нужно все в одном массиве связанных таблиц, в этом случае вы наверное, нужна хорошая поддержка многих ядер и большой памяти. У тебя есть сложная аутентификация настроена или это простое однопользовательское веб-приложение? Является ли объем данных в двоичных объектах, или это просто числа и строки? Как вы будете делать резервные копии?

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

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

2 голосов
/ 27 августа 2009

Ну, в конечном счете, это зависит от того, с чем вам удобнее всего. Согласно MySQL, не существует теоретического ограничения на размер базы данных ... это зависит от возможностей оборудования, поддерживающего ее. При количестве строк, использующих InnoDB, теоретический предел составляет 256 терабайт. Причина, по которой я продолжаю выдвигать теоретические, состоит в том, что, вероятно, очень маловероятно, что вы могли бы проиндексировать 256 терабайт данных, так что это то, что они приближают , может быть пределом. Если вы достигнете этого максимума, у вас будут большие проблемы. Текущие пользователи MySQL в производстве, о которых я могу думать, - YouTube и Facebook. Это, вероятно, два самых больших ... и кажется, что у них все хорошо.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...