سؤال

أرغب في تنفيذ NDB Cluster لـ MySQL Cluster 6.أريد أن أفعل ذلك لبنية بيانات ضخمة جدًا بحد أدنى 2 مليون سجل.

أريد أن أعرف ما إذا كان هناك أي قيود على تنفيذ مجموعة NDB.على سبيل المثال، حجم ذاكرة الوصول العشوائي (RAM) أو عدد قواعد البيانات أو حجم قاعدة البيانات لمجموعة NDB.

هل كانت مفيدة؟

المحلول

2 مليون قاعدة بيانات؟ أنا أقصد أن "صفوف".

على أي حال ، فيما يتعلق بالقيود: واحدة من أهم الأشياء التي يجب وضعها في الاعتبار هي أن مجموعة NDB/MySQL ليست قاعدة بيانات للأغراض العامة. والجدير بالذكر أن عمليات الانضمام إلى العمليات ، ولكن أيضًا عمليات الفوز الفرعية وعمليات النطاق (استفسارات مثل: الأوامر التي تم إنشاؤها بين الآن وأسبوع) ، يمكن أن تكون أبطأ بكثير مما تتوقعه. يرجع هذا جزئيًا إلى حقيقة أن البيانات موزعة عبر عقد متعددة. على الرغم من إجراء بعض التحسينات ، إلا أن أداء الانضمام لا يزال من الممكن أن يكون مخيبا للآمال للغاية.

من ناحية أخرى ، إذا كنت بحاجة إلى التعامل مع العديد من المعاملات المتزامنة (التي يفضل أن تكون صغيرة) (عادةً ما يتم تحديثات/إدراج/حذف عمليات البحث/حذفها بواسطة المفتاح الأساسي) وأنت تتناسب مع جميع بياناتك في الذاكرة ، ثم يمكن أن يكون ذلك جيدًا حل قابل للتطوير وأداء.

يجب أن تسأل نفسك لماذا تريد الكتلة. إذا كنت تريد ببساطة قاعدة بياناتك العادية التي لديك الآن ، إلا مع توفر 99،999 ٪ من التوفر ، فقد تشعر بخيبة أمل. بالتأكيد يمكن أن توفر لك MySQL Cluster توفرًا كبيرًا ووقت تشغيل كبير ، لكن عبء العمل في تطبيقك قد لا يكون مناسبًا جدًا لمجموعة Thtings. بالإضافة إلى أنك قد تكون قادرًا على استخدام حل آخر متوفر لزيادة وقت تشغيل قاعدة البيانات التقليدية على خلاف ذلك.

راجع للشغل - إليك قائمة بالقيود وفقًا للمستند: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-limitations.html

ولكن مهما فعلت ، جرب Cluster ، ومعرفة ما إذا كان هذا جيد بالنسبة لك. مجموعة MySQL ليست "mysql + 5 nines". ستكتشف عندما تحاول.

نصائح أخرى

تأتي مجموعة NDB مع نوعين من خيارات التخزين.

1. في تخزين الذاكرة.2. تخزين القرص.

تم تقديم NDB كما هو الحال في تخزين بيانات الذاكرة وفي الإصدار 7.4 (MYSQL 5.6) وما بعده بدأ في دعم تخزين القرص.

يدعم الإصدار الحالي 7.5 (MySQL 5.7) تخزين القرص وفي هذه الحالة لن تكون هناك قيود على الحجم حيث ستتواجد البيانات في القرص ويعتمد الحد على مساحة تخزين القرص المتوفرة لديك.
تكوينات تخزين القرص - https://dev.mysql.com/doc/refman/5.7/en/mysql-cluster-disk-data-symlinks.html

يعد تخزين الذاكرة في مجموعة NDB أيضًا ناضجًا تمامًا ويمكنك تحديد استخدام الذاكرة في ملف config.ini لعقدة الإدارة.مثال - datamemory = 3072m IndexMemory = 384m

في جدول متوسط ​​(يعتمد على البيانات المخزنة في الأعمدة) يجب أن يكون إجمالي حجم الديسيبل أقل من 1 جيجابايت والذي يمكن تهيئته بسهولة.

ملاحظة - في تطبيقي الخاص واجهت تحديًا واحدًا في الأداء حيث يتدهور أداء NDB مع زيادة عدد الصفوف في الجدول.في ظل التحميل العالي، سوف تتدهور القراءة المتزامنة مع زيادة عدد الصفوف.تأكد من عدم إجراء فحص كامل للجدول وتوفير ما يكفي من حيث مسند الجملة.للحصول على الأداء المناسب، حدد الفهرس الثانوي بشكل صحيح وفقًا لنمط الاستعلام الخاص بك.سيؤدي تحديد الفهرس الثانوي إلى زيادة استهلاك الذاكرة مرة أخرى، لذا قم بتخطيط نمط الاستعلام وموارد الذاكرة وفقًا لذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top