Використання різних версій баз даних для різних сайтів у багатосмічній мережі, як правило, не підтримується і є технічно складним. У типовій багатосмічній мережевій архітектурі всі сайти мають однакову базу даних та однакову версію системи управління базами даних (DBM). Ось широке дослідження цієї теми, яка стосується концепції, наслідків та альтернатив, пов’язаних із використанням різних версій баз даних у багатозначній установці.
Розуміння структури бази даних мереж
Багаторазова мережа, така як Multisite WordPress, використовує єдиний екземпляр бази даних для зберігання даних для декількох сайтів. База даних містить основні мережеві таблиці, що застосовуються до всієї мережі, і розділяє дані кожного сайту на різні таблиці за допомогою унікальних префіксів. Сайти не мають власних окремих баз даних; Натомість вони поділяють один і той же сервер баз даних та екземпляр, але з різними таблицями або таблицями, що відповідають окремим сайтам.
Це означає, що базова система бази даних (MySQL, MariADB або інша підтримувана версія RDBMS) повинна бути рівномірною у всій багатоповерховій мережі, оскільки всі сайти підключені до одного екземпляра бази даних. Версія СУБД контролює функції, продуктивність та сумісність бази даних для всіх збережених даних. Неможливо для деяких сайтів використовувати нову або різну версію бази даних, а інші використовують старшу версію, якщо вони проживають на одному сервері баз даних.
Технічні обмеження
- Один екземпляр бази даних: Багаторазова мережа використовує єдиний екземпляр бази даних. Це означає, що на всіх сайтах існує лише одна запущена версія сервера баз даних.
- Сумісність двигуна бази даних: версія бази даних регулює доступні функції двигуна, діалекти SQL та оптимізації продуктивності. Змішування різних версій в межах однієї схеми неможливо.
- Розділення префікса таблиці: Хоча дані для кожного сайту розділені префіксами таблиці, всі таблиці знаходяться в одній глобальній базі даних. Це означає, що всі таблиці повинні бути сумісні з однією з версією двигуна бази даних.
- Уніфікована версія СУБД: Вся багатосмічна мережа покладається на рівномірну версію СУБД на всій дошці. Будь -яке оновлення або пониження впливає на всі сайти одночасно.
Що станеться, якщо потрібні різні версії баз даних?
Якщо різні сайти потребують різних версій СУБД, типова багаторазова установка не може виконати це без принципів архітектури згинання. Ця вимога може виникнути з:
- Проблеми сумісності з деякими плагінами або темами, які потребують нових або старих функцій бази даних.
- Вимоги щодо налаштування продуктивності або оптимізації, які краще обслуговуються іншою версією.
- База даних, специфічні для двигуна, або обмеження.
Оскільки багаторазова архітектура покладається на один екземпляр бази даних, єдиним реальним способом розміщення різних версій баз даних для різних сайтів було б розділити їх на окремі мережі або окремі автономні установки, кожен з яких має власний екземпляр сервера бази даних, що працює потрібною версією.
Альтернативи різними версіями бази даних на сайті
Окремі сервери баз даних на кожному сайті з незалежними установками WordPress
Замість мультистизації ви можете налаштувати різні сайти самостійно, кожен з яких має власний сервер баз даних, що працює з потрібною версією СУБД для цього сайту. Це пропонує повну гнучкість, але жертви:
- Уніфіковане управління
- Централізований контроль користувача та плагіну
- Легкість резервних копій на сайтах
- Спільні теми та плагіни
Такий підхід найкраще для того, коли сайти мають дуже різні технічні вимоги до безпеки.
Кілька баз даних на одному сервері
Іноді кілька баз даних можуть перебувати в одному екземплярі сервера баз даних з однією і тією ж версією. Це не задовольняє потребу в різних версіях на кожному сайті, але дозволяє розділити з точки зору зберігання даних.
Використовуйте мультиситну, але з рівномірною версією СУБД
Якщо сайти можуть працювати за однією версією бази даних, Multisite залишається сильним варіантом. У мережі сайти мають окремі таблиці, але всі вони мають однакову версію сервера бази даних та налаштування ядра.
MultiSite Cepital
Мультисвітні мережі WordPress створюють спільні таблиці рівня мережі (наприклад, WP_USERS, WP_SITE, WP_BLOGS), а потім набір таблиць конкретних сайтів для кожного сайту з унікальним префіксом сайту (наприклад, WP_2_POSTS для сайту 2). Усі таблиці знаходяться в одній базі даних, тому одна версія бази даних обслуговує всю мережу. Ядро WordPress, плагіни та теми припускають послідовне середовище бази даних.
Потенційні ризики спроби використовувати різні версії
Спроба або імітація іншої версії бази даних для сайтів в одній багатоповерховій мережі може спричинити:
- Пошкодження даних Якщо певні запити SQL покладаються на функції, недоступні в деяких версіях.
- Несумісність або невдача плагінів через невідповідність СУБД.
- Складності резервних копій та міграцій.
- Загальна нестабільність багатозначного середовища.
міркувань безпеки та ефективності
Уніфікована версія бази даних приносить користь мережевими патчами безпеки та покращенням продуктивності. Спроба підтримувати розбіжні версії бази даних потребує декількох серверів баз даних, збільшуючи складність та вартість.
Резюме
- Багаторазові мережі поділяють одну базу даних та одну версію СУБД.
- Різні сайти в межах мультиститу не можуть використовувати різні версії бази даних.
- Окремі версії баз даних на кожному сайті потребують окремих сайтів або мереж з незалежними базами даних.
- Багаторазові переваги від рівномірності версії бази даних для стабільності, безпеки та управління.
- Для різних вимог до бази даних незалежні встановлення з окремими екземпляром СУБД є найкращим рішенням.