Хорошо, я прочитал довольно много вещей о PostgresSQL, и у него, похоже, есть несколько функций, которые кажутся довольно удивительными, мне очень нравится идея иметь возможность обновлять таблицу и добавлять столбец / индекс без необходимости ждать для базы данных и его заблокировали. Также, похоже, он работает примерно так же быстро, как MySQL, когда дело доходит до производительности. Но меня больше всего беспокоит легкость его масштабирования так же, как и моей системы.
Сейчас у меня есть таблицы, у которых все есть внешние ключи и для простоты использования они связаны друг с другом, и я использую внешние ключи много . Например, у меня есть таблица «игроки», в которой много таблиц, которые связаны с ней. У меня есть следующие таблицы:
- players_mail
- players_mail_attachments
- players_bank
- players_inventory
- players_effects
- players_effects_temp
- players_quests
- players_quests_tasks
- ...
и список продолжается. У меня есть несколько других таблиц, и все они используют идентификатор таблицы игроков в качестве одного из своих индексов и относятся к столбцу player.id. Также у почты один внешний ключ к почте, а другие также как реляционные. Хорошо ли масштабируется PostgreSQL с этой реляционной базой данных? У меня также есть несколько индексов на большинстве таблиц. У всех таблиц, которые не являются «корневыми» таблицами (как у игроков), есть два индекса первичного ключа, а затем также индексы для внешних ключей.
Я уже читал, что postgres не создает индексы автоматически для внешних ключей, поэтому я знаю, что мне, вероятно, придется создавать эти индексы вручную. С тем, что я сказал, насколько хорошо Postgres работает с такими наборами данных? Я уверен, что кто-то еще уже создал высокореляционную базу данных в RDBMS до меня, и я хотел бы услышать их опыт.
Изменить, чтобы добавить:
Я в первую очередь смотрю на это, потому что он обрабатывает блокировку во время записи, а также потому, что я не знаю, что я чувствую к оракулу, и как полагаюсь на xtradb в качестве формата базы данных. Хотя я знаю, что MariaDB работает над собственным форматом базы данных, мне все еще не нравится, что мой любимый формат базы данных находится под контролем компании, которая может просто убить ее или, что еще хуже, сделать ее полностью закрытым источником. После того, как я пройду через postgresql и посмотрю, как я могу легко перенести в него свои базы данных, и найду инструменты для него, я выберу, какой ответ был наилучшим, я также оставлю его открытым на 24 часа, чтобы люди могли вносить изменения в любое они хотят.
изменить 2:
Я только что наконец-то действительно начал смотреть на сам формат базы данных, и хотя мне действительно нравятся некоторые вещи, которые я не выношу объектной ориентации, это сводит меня с ума. Я был полностью готов перейти к postgres, пока не понял, что он смоделирован после половины ориентации объекта. Думаю, один из моих последних вопросов - не заставляет ли я правильно использовать классы и объекты? Википедия говорит, что это «мост» между ООП и RDMB, поэтому я понимаю, что все равно могу делать все так, как мне нравится. Если это так, то я, скорее всего, полюблю базу данных, если не смогу, то возненавижу. И я бы предпочел не ненавидеть инструмент, который так важен для успеха этой вещи.