Хорошо, я читал довольно много о PostgresSQL, и, кажется, у него есть несколько функций, которые кажутся довольно замечательными, мне очень нравится идея обновлять таблицу и добавлять столбец/индекс, не дожидаясь базы данных. и пусть он будет заблокирован. Кроме того, кажется, что он так же быстр, как MySQL, когда дело доходит до производительности. Но больше всего меня беспокоит простота масштабирования с такой же реляционной системой, какой является моя.
Прямо сейчас у меня есть таблицы, все из которых имеют внешние ключи и связаны друг с другом для простоты использования, и я использую внешние ключи много. В качестве примера у меня есть таблица «игроков», в которой есть много таблиц, которые связаны с ней. У меня есть следующие таблицы, которые выходят из него.
- player_mail
- player_mail_attachments
- player_bank
- player_inventory
- player_effects
- player_effects_temp
- player_quests
- player_quests_tasks
- ...
и список продолжается. У меня есть несколько других таблиц, и все они используют идентификатор таблицы игроков в качестве одного из своих индексов и относятся к столбцу player.id. Также почта имеет внешний ключ к почте, а другие также являются реляционными. Хорошо ли масштабируется PostgreSQL с такой реляционной базой данных? У меня также есть несколько индексов для большинства таблиц. Все таблицы, которые не являются «корневыми» таблицами (например, таблицы игроков), имеют два индекса: первичный ключ, а затем также индексы для внешних ключей.
Я уже читал, что postgres не создает автоматически индексы для внешних ключей, поэтому я знаю, что мне, вероятно, придется создавать эти индексы вручную. С учетом того, что я сказал, насколько хорошо Postgres обрабатывает такой набор данных? Я уверен, что кто-то уже создал высокореляционную базу данных в RDBMS до меня, и я хотел бы услышать их опыт.
Изменить, чтобы добавить:
В первую очередь я смотрю на него из-за того, как он справляется с блокировкой во время записи, а также потому, что я не знаю, как я отношусь к oracle и полагаюсь на xtradb как на формат базы данных. Несмотря на то, что я знаю, что MariaDB работает над своим собственным форматом базы данных, мне все равно не нравится, что мой любимый формат базы данных находится под контролем компании, которая может просто убить его или, что еще хуже, сделать его полностью закрытым исходным кодом. После того, как я пройду через postgresql и посмотрю, как я могу легко переместить в него свои базы данных, и посмотрю инструменты для него, я выберу лучший ответ, я также оставлю его открытым на 24 часа, чтобы люди могли изменить все, что угодно. они желают.
редактировать 2:
Я только что, наконец, по-настоящему начал изучать сам формат базы данных, и хотя мне действительно нравятся некоторые вещи, которые я не выношу, Object Orientation, это сводит меня с ума. Я был полностью готов перейти на postgres, пока не понял, что он смоделирован на основе половины объектной ориентации, я думаю, один из моих последних вопросов по этому поводу заключается в том, что это не заставляет меня правильно использовать классы и объекты? Википедия говорит, что это «мост» между ООП и RDMB, поэтому я воспринимаю это, поскольку я все еще могу делать все так, как мне нравится думать об этом. Если это работает так, то мне, вероятно, понравится база данных, если нет, то я буду ее ненавидеть. И я бы предпочел не ненавидеть инструмент, который так важен для успеха этого дела.