การใช้ฐานข้อมูลที่แตกต่างกันสำหรับไซต์ต่าง ๆ ในเครือข่ายหลายไซต์นั้นไม่ได้รับการสนับสนุนและมีความซับซ้อนทางเทคนิค ในสถาปัตยกรรมเครือข่ายหลายไซต์ทั่วไปไซต์ทั้งหมดแบ่งปันฐานข้อมูลเดียวกันและระบบการจัดการฐานข้อมูลเวอร์ชันเดียวกัน (DBMS) นี่คือการสำรวจหัวข้อนี้อย่างกว้างขวางซึ่งกล่าวถึงแนวคิดความหมายและทางเลือกที่เกี่ยวข้องกับการใช้ฐานข้อมูลที่แตกต่างกันในการตั้งค่าหลายไซต์
ทำความเข้าใจโครงสร้างฐานข้อมูลเครือข่ายหลายไซต์
เครือข่ายหลายไซต์เช่น WordPress Multisite ใช้อินสแตนซ์ฐานข้อมูลเดียวเพื่อจัดเก็บข้อมูลสำหรับหลาย ๆ ไซต์ ฐานข้อมูลมีตารางเครือข่ายหลักที่ใช้กับเครือข่ายทั้งหมดและแยกข้อมูลของแต่ละไซต์ออกเป็นตารางที่แตกต่างกันโดยใช้คำนำหน้าเฉพาะ เว็บไซต์ไม่มีฐานข้อมูลแยกต่างหาก แต่พวกเขาแบ่งปันเซิร์ฟเวอร์ฐานข้อมูลเดียวกันและอินสแตนซ์ แต่มีตารางหรือชุดตารางที่แตกต่างกันซึ่งสอดคล้องกับแต่ละไซต์
ซึ่งหมายความว่าระบบฐานข้อมูลพื้นฐาน (MySQL, Mariadb หรือ RDBMS ที่รองรับอื่น ๆ ) จะต้องเป็นเครื่องแบบในเครือข่ายหลายไซต์ทั้งหมดเนื่องจากไซต์ทั้งหมดเชื่อมต่อกับอินสแตนซ์ฐานข้อมูลเดียวกัน เวอร์ชัน DBMS ควบคุมคุณสมบัติประสิทธิภาพและความเข้ากันได้ของฐานข้อมูลสำหรับข้อมูลที่เก็บไว้ทั้งหมด เป็นไปไม่ได้ที่บางไซต์จะใช้ฐานข้อมูลรุ่นใหม่หรืออื่น ๆ ในขณะที่บางไซต์ใช้เวอร์ชันเก่าหากพวกเขาอาศัยอยู่บนเซิร์ฟเวอร์ฐานข้อมูลเดียวกัน
ข้อ จำกัด ทางเทคนิค
- อินสแตนซ์ฐานข้อมูลเดี่ยว: เครือข่ายหลายไซต์ใช้อินสแตนซ์ฐานข้อมูลเดียว ซึ่งหมายความว่ามีเซิร์ฟเวอร์ฐานข้อมูลเวอร์ชันเดียวที่เรียกใช้ในทุกไซต์
- ความเข้ากันได้ของเอ็นจิ้นฐานข้อมูล: เวอร์ชันฐานข้อมูลควบคุมคุณสมบัติของเอ็นจิ้นที่มีอยู่, ภาษาถิ่น SQL และการเพิ่มประสิทธิภาพประสิทธิภาพ การผสมเวอร์ชันที่แตกต่างกันภายในหนึ่งสคีมาไม่สามารถทำได้
- การแยกคำนำหน้าตาราง: แม้ว่าข้อมูลสำหรับแต่ละไซต์จะถูกคั่นด้วยคำนำหน้าตาราง แต่ตารางทั้งหมดอยู่ในฐานข้อมูลส่วนกลางเดียวกัน ซึ่งหมายความว่าตารางทั้งหมดจะต้องเข้ากันได้กับเอ็นจินฐานข้อมูลเวอร์ชันเดียวกัน
- เวอร์ชัน DBMS เครื่องแบบ: เครือข่ายหลายไซต์ทั้งหมดขึ้นอยู่กับเวอร์ชัน DBMS เครื่องแบบทั่วกระดาน การอัปเดตหรือการลดระดับใด ๆ จะส่งผลกระทบต่อเว็บไซต์ทั้งหมดพร้อมกัน
จะเกิดอะไรขึ้นหากจำเป็นต้องมีเวอร์ชันฐานข้อมูลที่แตกต่างกัน?
หากไซต์ต่าง ๆ ต้องการ DBMS ที่แตกต่างกันการตั้งค่าหลายไซต์ทั่วไปไม่สามารถเติมเต็มสิ่งนี้ได้โดยไม่ต้องงอสถาปัตยกรรม ข้อกำหนดนี้อาจเกิดขึ้นจาก:
- ปัญหาความเข้ากันได้กับปลั๊กอินหรือธีมบางอย่างที่ต้องใช้คุณสมบัติฐานข้อมูลใหม่หรือเก่ากว่า
- ข้อกำหนดการปรับแต่งประสิทธิภาพหรือการปรับให้เหมาะสมที่ให้บริการดีกว่าในเวอร์ชันอื่น
- ข้อบกพร่องหรือข้อ จำกัด เฉพาะของเครื่องยนต์ฐานข้อมูล
เนื่องจากสถาปัตยกรรมแบบหลายไซต์อาศัยอินสแตนซ์ฐานข้อมูลหนึ่งวิธีเดียวที่เป็นจริงในการรองรับเวอร์ชันฐานข้อมูลที่แตกต่างกันสำหรับไซต์ต่าง ๆ คือการแยกพวกเขาออกเป็นเครือข่ายแยกต่างหากหรือการติดตั้งแบบสแตนด์อโลนแยกต่างหากแต่ละรายการมีอินสแตนซ์เซิร์ฟเวอร์ฐานข้อมูลของตัวเองที่ใช้เวอร์ชันที่ต้องการ
ทางเลือกสำหรับรุ่นฐานข้อมูลที่แตกต่างกันต่อไซต์
เซิร์ฟเวอร์ฐานข้อมูลแยกต่างหากต่อไซต์ด้วยการติดตั้ง WordPress อิสระ
แทนที่จะเป็นหลายไซต์คุณสามารถตั้งค่าไซต์ต่าง ๆ ได้อย่างอิสระแต่ละแห่งมีเซิร์ฟเวอร์ฐานข้อมูลของตัวเองที่ใช้เวอร์ชัน DBMS ที่ต้องการสำหรับไซต์นั้น สิ่งนี้มีความยืดหยุ่นอย่างเต็มที่ แต่เสียสละ:
- การจัดการแบบครบวงจร
- ผู้ใช้ส่วนกลางและการควบคุมปลั๊กอิน
- ความสะดวกในการสำรองข้อมูลข้ามเว็บไซต์
- แบ่งปันธีมและปลั๊กอิน
วิธีนี้ดีที่สุดสำหรับเมื่อไซต์มีข้อกำหนดทางเทคนิคและความปลอดภัยที่แตกต่างกันมาก
หลายฐานข้อมูลบนเซิร์ฟเวอร์เดียวกัน
บางครั้งฐานข้อมูลหลายฐานข้อมูลสามารถอยู่บนอินสแตนซ์เซิร์ฟเวอร์ฐานข้อมูลเดียวกันกับเวอร์ชันเดียวกัน สิ่งนี้ไม่ตอบสนองความต้องการรุ่นที่แตกต่างกันต่อไซต์ แต่อนุญาตให้แยกในแง่ของการจัดเก็บข้อมูล
ใช้หลายไซต์ แต่มีเวอร์ชัน DBMS แบบสม่ำเสมอ
หากไซต์สามารถทำงานภายใต้รุ่นฐานข้อมูลเดียว Multisite ยังคงเป็นตัวเลือกที่แข็งแกร่ง ภายในเครือข่ายเว็บไซต์จะมีตารางแยกต่างหาก แต่พวกเขาทั้งหมดแชร์เวอร์ชันเซิร์ฟเวอร์ฐานข้อมูลเดียวกันและการตั้งค่าหลัก
เฉพาะหลายไซต์ WordPress
WordPress Multisite Networks สร้างตารางระดับเครือข่ายที่ใช้ร่วมกัน (เช่น WP_USERS, WP_SITE, WP_BLOGS) จากนั้นชุดตารางเฉพาะไซต์สำหรับแต่ละไซต์ที่มีคำนำหน้าไซต์ที่ไม่ซ้ำกัน (เช่น WP_2_POSTS สำหรับไซต์ 2) ตารางทั้งหมดอยู่ในฐานข้อมูลเดียวดังนั้นเวอร์ชันฐานข้อมูลเดียวให้บริการเครือข่ายทั้งหมด WordPress core, ปลั๊กอินและธีมถือว่าเป็นสภาพแวดล้อมฐานข้อมูลที่สอดคล้องกัน
ความเสี่ยงที่อาจเกิดขึ้นจากการพยายามใช้เวอร์ชันที่แตกต่างกัน
การพยายามหรือจำลองฐานข้อมูลเวอร์ชันอื่นสำหรับไซต์ในเครือข่ายหลายไซต์เดียวกันอาจทำให้เกิด:
- ข้อมูลการทุจริตหากการสืบค้น SQL บางอย่างขึ้นอยู่กับคุณสมบัติที่ไม่สามารถใช้งานได้ในบางเวอร์ชัน
- ปลั๊กอินความเข้ากันไม่ได้หรือความล้มเหลวเนื่องจากคุณสมบัติ DBMS ไม่ตรงกัน
- ความซับซ้อนในการสำรองข้อมูลและการอพยพ
- ความไม่แน่นอนโดยรวมของสภาพแวดล้อมหลายไซต์
การพิจารณาความปลอดภัยและประสิทธิภาพ
เวอร์ชันฐานข้อมูลแบบครบวงจรเป็นประโยชน์ต่อแพตช์ความปลอดภัยทั่วทั้งเครือข่ายและการปรับปรุงประสิทธิภาพ การพยายามรักษาเวอร์ชันฐานข้อมูลที่แตกต่างจะต้องใช้เซิร์ฟเวอร์ฐานข้อมูลหลายตัวเพิ่มความซับซ้อนและค่าใช้จ่าย
สรุป
- เครือข่ายหลายไซต์แชร์ฐานข้อมูลหนึ่งฐานและเวอร์ชัน DBMS หนึ่งรุ่น
- ไซต์ที่แตกต่างกันภายในหลายไซต์ไม่สามารถใช้ฐานข้อมูลที่แตกต่างกันได้
- เวอร์ชันฐานข้อมูลแยกต่างหากต่อไซต์ต้องใช้ไซต์หรือเครือข่ายแยกต่างหากด้วยฐานข้อมูลอิสระ
- ประโยชน์หลายไซต์จากความสม่ำเสมอของรุ่นฐานข้อมูลเพื่อความมั่นคงความปลอดภัยและการจัดการ
- สำหรับข้อกำหนดฐานข้อมูลที่แตกต่างกันการติดตั้งอิสระด้วยอินสแตนซ์ DBMS แยกต่างหากเป็นทางออกที่ดีที่สุด