Яка хороша стратегія планування зростання БД WordPress?


9

Сподіваючись на відгуки на тему, як оптимізувати та залишатись на вершині продуктивності, коли база даних WordPress зростає ... намалювати зображення .... скажімо, у вас є сайт WordPress / Buddypress MU, який починається приблизно з 150 кбіт (встановлення ванілі) ... з часом користувачі додають блоги, форуми, публікації та коментарі, а база даних зростає до 5 Мб .... потім 10 Мб наступного року .... Також припускаючи, що елементи хостингу - це стандартні кольорові установки, такі як Cpanel або Plesk.

  • У який момент кількість записів у базі даних впливає на ефективність веб-сайту front-end?
  • Що ви можете зробити як менеджер веб-сайтів, щоб це безперебійно працювало, коли ваша база даних росте?
  • Що ви можете розраховувати на ефективність після 5 року, коли ваша база даних становить 500 - 600 Мб?

Дякуємо за будь-який зворотній зв'язок, який ви могли б мати про тримання тісного корабля.

З повагою,

S.


3
Ви задали 7 запитань і прийняли лише 1. Не хороший запис. :-(

8
25mb - це нічого. Ви повинні турбуватися про розмір бази даних, оскільки вона досягає ГБ.
Данхамзз

Дякуємо за ваш відгук. Якщо у нас виникають проблеми з продуктивністю на 500 Мб, то, мабуть, тоді наша компанія хостингу. PS Повернувся і прийняв відповіді на запитання.
Саймон

Відповіді:


4

Ваші конкретні запитання:

1) Не існує суворого обмеження на "кількість записів", які може містити БД, перш ніж впливати на продуктивність. Продуктивність залежить настільки ж від вашої апаратури та конфігурації, як і від розміру та структури БД.

2) Якщо ви турбуєтесь про масштабованість шару вашого DB, ви можете запустити його в кластері або на хмарній коробці або VPS, що дозволяє змінити розмір. Якщо ваш БД починає мляво, ви можете збільшити розмір (хоча зазвичай за додаткову плату). Ці параметри збільшують вартість, але насправді найкращий спосіб забезпечити масштабованість БД.

3) Це дійсно залежить від настройки хостингу та вашої архітектури БД. Але в цілому (якщо ви не по- справжньому дешеві коробки), я б не турбувався про 30MB базу даних WordPress. WordPress добре справляється з індексуванням таблиць, і навіть конфігурація OOB MySQL повинна легко обробляти запити WordPress у БД такого розміру. Коли ви встаєте в гігабайти - саме тоді вам може знадобитися серйозно поставитися до варіантів оптимізації продуктивності.

В загальному:

Якщо ви турбуєтесь про продуктивність, зосередьтесь на налаштуванні існуючої установки MySQL та / або на налаштуванні шару кешування. Кешування може значно зменшити навантаження на MySQL (особливо на сайтах WordPress, оскільки вони, як правило, виконують велику кількість запитів БД).

Якщо після належного налаштування MySQL та налаштування пристойного шару кешування ви все ще переживаєте за переростання конфігурації обладнання, ви можете розробити політику видалення вмісту через x кількість часу.

Жоден з цих матеріалів не є специфічним для WordPress. І я не впевнений, що на запитання є відповіді, які не стосуються будь-якого веб-сайту чи програми, що працює на стеку LAMP. Але, можливо, хтось інший має пропозиції щодо структур MU та інших хитрощів БД, що стосуються WP ... Я не знаю.


4

Суворо з точки зору MySQL, у мене є пропозиції, як покращити кешування даних / індексів для екземпляра MySQL.

Майте на увазі, що для MySQL є два основних двигуни зберігання даних

  • MyISAM
  • InnoDB

Їх механізми кешування різні. Є щось, що ви можете зробити, щоб налаштувати механізм зберігання даних на ваш вибір.

MyISAM

MyISAM кешує лише індексні сторінки. Він ніколи не кешує дані. Щоб покращити введення / виведення для таблиць MyISAM, ви можете зробити дві дії.

Вдосконалення MyISAM №1

Будь-яка таблиця MyISAM, що містить стовпці VARCHAR, може бути внутрішньо перетворена в CHAR, не торкаючись початкової конструкції. Припустимо, у вас є таблиця з назвою mydb.mytable, і ви хочете покращити введення-виведення для неї, виконайте наступне:

ALTER TABLE mydb.mytable ROW_FORMAT=Fixed;

Це збільшить розмір таблиці на 60% -100%, але приведе до 20-30% збільшення продуктивності вводу / виводу, не змінюючи нічого іншого . Про це я писав раніше в DBA StackExchange:

Вдосконалення MyISAM №2

Вам потрібно збільшити кеш клавіш MyISAM (розмір за розміром key_buffer_size ). Запустіть цей запит, будь ласка:

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1))
recommended_key_buffer_size FROM
(SELECT LEAST(POWER(2,32),KBS1) KBS
FROM (SELECT SUM(index_length) KBS1
FROM information_schema.tables WHERE engine='MyISAM' AND
table_schema NOT IN ('information_schema','mysql','performance_schema')) AA ) A,
(SELECT 2 PowerOf1024) B;

Це покаже вам ідеальний розмір key_buffer_size на основі поточного набору даних.

InnoDB

InnoDB кешує дані та індекси. Якщо ви конвертували всі ваші дані в InnoDB і зараз виконуються WordPress з усієї бази даних InnoDB, вам потрібно розмістити свій буферний пакет InnoDB (розміром з innodb_buffer_pool_size ). Запустіть цей запит, будь ласка:

SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 2 PowerOf1024) B;

Це покаже вам ідеальний розмір key_buffer_size на основі поточного набору даних.

Прогнози

Якщо ви проектуєте, що ваш набір даних зросте в 20 разів більше, просто кратно тому, що рекомендує цей запит, на 20. Припустимо, ваш набір даних MyISAM становить 15 МБ, а 3 МБ - сума ваших індексів. Якщо ви підрахуєте, що у вас буде в 20 разів більше даних, встановіть key_buffer_size на 60MB, як це в /etc/my.cnf:

[mysqld]
key_buffer_size=60M

потім перезапустіть MySQL. Те ж саме стосуватиметься буферного басейну InnoDB.

Якщо всі ваші дані є InnoDB, вам потрібно виконати повне очищення інфраструктури InnoDB, яку я розмістив у StackOverflow .


2

У який момент кількість записів у базі даних впливає на ефективність веб-сайту front-end?

Коли запити починають вражати ліміт ресурсів вашого хостинг-акаунта.

Що ви можете зробити як менеджер веб-сайтів, щоб це безперебійно працювало, коли ваша база даних росте?

Слідкуйте за використанням ресурсів. Вживайте заходів для збільшення ресурсу та / або оптимізації використання.

Що ви можете розраховувати на ефективність після 5 року, коли ваша база даних становить 25 - 30 Мб?

Не повинно бути ніяких змін у продуктивності цієї крихітної бази даних.

Якщо ви очікуєте, що ваш сайт буде рости так повільно, то у вас буде достатньо часу, щоб навчитися керувати ростом.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.