dubr
@dubr
пыхарь

Почему WordPress Multisite создает под каждый сайт таблицы, а не базы?

Привет!

У WordPress есть фича "MultiSite", позволяющая на одной кодовой базе запускать множество разных сайтов. На этой фиче работает в частности блогхостинг wordpress.com (вот тут есть видео с рассказом о том, как он устроен).

На каждый сайт создается свой набор таблиц с идентичной структурой, отличающихся префиксами в названиях, и это все живет в одной БД. Есть шаманские способы сделать разные БД, но by design оно работает именно так.

Кто нибудь понимает, почему они выбрали такую архитектуру?

Почему не хранить все в одной базе, используя партиционирование / шардинг? Вроде самый очевидный вариант. Да, он подразумевает, что нельзя изменить схему для отдельного сайта, но вроде она и так не меняется, это, кажется, одна из основ "пуленепробиваемости" WP.

Почему не создавать новую базу под каждый сайт? Так, кажется, и гибче (можно умно распределять сайты по серверам, можно давать менять схему), и безопаснее. Какие могу возникнуть проблемы при экстремально большом (сотни тысяч) количестве БД? Репликация?

Как бы вы построили такую систему? Можно два сценария:
1) схема и набор возможностей фиксированы и неизменны,
2) можно ставить сторонние плагины, которые в том числе могут изменять схему.

Спасибо!
  • Вопрос задан
  • 642 просмотра
Пригласить эксперта
Ответы на вопрос 1
maxxannik
@maxxannik
Сайты на WordPress + Интернет магазины WooCommerce
Птм что создавать базу под каждый сайт надо не всем. Это усложнение. Нарушение принципа бритвы Оккама. Разработчики WP с мозгами и потому такую фигню делать не будут.
Тем кому надо могут это настроить. Возможность такая есть. Например через HyperDB. Там самые разные типы шардинга поддерживаются.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы