Шардинг в WordPress: какой мульти-DB плагин использовать?

12 окт. 2010 г., 18:29:54
Просмотры: 10K
Голосов: 8

У меня есть мультисайт WordPress, который размещает столько блогов, что мне необходимо шардировать базу данных. Я обнаружил три доступных плагина для распределения WordPress по нескольким базам данных:

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

У кого-нибудь есть опыт развертывания любого из этих трёх инструментов? Или, что ещё лучше, опыт работы с несколькими из них и объяснение, почему вы переключились?

Спасибо, Бетани

3
Комментарии

Bee, пожалуйста, выберите один ответ как "правильный ответ" :)

hakre hakre
10 янв. 2011 г. 14:35:28

Так как я новичок в настройке "баз данных", думаю, мне стоит начать с самого простого варианта, потому что я буду единственным, кто работает сразу с 24 сайтами, и скорость имеет значение. Огромное спасибо всем вам! Честно говоря, я не ожидала, что получу какие-либо ответы, тем более так быстро. Спасибо. Надеюсь, это сработает, пожелайте мне удачи :) Faith

User User
10 янв. 2011 г. 10:33:22

@Faith: Вы тот же человек, что и "Bee", который задал вопрос? Есть причина, по которой вы больше не можете использовать тот логин? Это не та же система, что форум, поэтому вам не следует писать благодарность в ответе, а использовать систему голосования (как только у вас будет достаточно "репутации" для этого).

Jan Fabry Jan Fabry
10 янв. 2011 г. 12:45:07
Все ответы на вопрос 3
1

Лично я не использую ни один из них. Вместо этого я использую кластер NDB. NDB — это встроенный в MySQL механизм репликации master-master.

Единственное практическое ограничение NDB — отсутствие полнотекстового индекса. Но вы всегда можете использовать API Yahoo или Google для поиска по вашему сайту. Я считаю, что дополнительные преимущества избыточности стоят того, особенно учитывая, что ни один сервер не становится узким местом для записи в БД.

Если вам нужна репликация master-slave с узким местом при записи, то HyperDB — это решение от Automattic, поэтому среди перечисленных плагинов это более надежный вариант. Однако учтите, что часть кода HyperDB уже была перенесена в ядро WordPress начиная с версии 3.0 и слияния с WPMU. (Посмотрите файл wp-db.php в папке wp-includes — вы заметите, что многое из него поддерживает работу с несколькими серверами БД «из коробки».)

14 окт. 2010 г. 02:58:43
Комментарии

Для расширения этого подхода (чтобы решить проблему на уровне базы данных): Вы также можете проксировать серверы MySQL. И есть дополнительное преимущество в замене класса WPDB на тот, который использует mysqli или даже mysqlnd для повышения производительности на стороне PHP.

hakre hakre
10 янв. 2011 г. 14:32:53
1

Я бы выбрал HyperDB.

Он разработан основными разработчиками WordPress и основан на коде, используемом на Wordpress.com.

http://wordpress.org/support/topic/shardb-or-hyperdb

SharDB может быть немного проще в настройке, но, вероятно, имеет меньше функций, чем HyperDB. Я бы посоветовал взглянуть на оба варианта и выбрать тот, который лучше соответствует вашим потребностям.

12 окт. 2010 г. 19:56:18
Комментарии

Эй, большое спасибо за информацию! HyperDB действительно гибкая и многофункциональная система.. возможно, даже больше, чем мне нужно.

Bee Bee
13 окт. 2010 г. 06:03:05
2

Мэтт выступал в нашей компании несколько месяцев назад. Он рекомендовал настройку базы данных по принципу master-slave с множеством R/O (только для чтения) реплик. Его аргументация заключалась в том, что операции записи дорогие, а операции чтения — их гораздо больше по объёму! — недорогие, поэтому лучше иметь больше ресурсов для чтения. То же самое для серверов приложений: используйте недорогое оборудование для решения проблемы и забудьте о supercache.

15 окт. 2010 г. 03:02:16
Комментарии

Это звучит как отличный вариант, но не могли бы вы объяснить немного подробнее о том, как бы вы реализовали это? (То есть, как настроить WP так, чтобы запись шла на мастер, а чтение — на один из слейвов) Есть ли плагин, который может помочь с этим? Или это конфигурация на уровне БД / какой-то другой инструмент?

rinogo rinogo
11 авг. 2015 г. 05:30:22

Возможно, это? "HyperDB позволяет разделить запись и чтение базы данных и назначить их разным серверам."(https://codex.wordpress.org/HyperDB#Replication)

rinogo rinogo
11 авг. 2015 г. 05:33:03