سؤال

أنا أعمل مع مخطط قاعدة بيانات يواجه مشكلات قابلية التوسع.لقد زاد حجم أحد الجداول في المخطط إلى حوالي 10 ملايين صف، وأنا أقوم باستكشاف خيارات التجزئة والتجزئة للسماح لهذا المخطط بالتوسع إلى مجموعات بيانات أكبر بكثير (على سبيل المثال، من مليار إلى 100 مليار صف).يجب أيضًا أن يكون تطبيقنا قابلاً للنشر على العديد من منتجات قواعد البيانات، بما في ذلك على سبيل المثال لا الحصر Oracle وMS SQL Server وMySQL.

هذه مشكلة كبيرة بشكل عام، وأود أن أقرأ ما هي الخيارات المتاحة.ما هي الموارد المتوفرة (الكتب والمستندات التقنية ومواقع الويب) لاستراتيجيات تقسيم قاعدة البيانات وتقسيمها؟

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

المحلول

أتفق مع الإجابات الأخرى التي تقول إنه يجب عليك إلقاء نظرة على المخطط والفهارس الخاصة بك قبل اللجوء إلى التجزئة.يعد 10 ملايين صف ضمن إمكانيات أي من محركات قواعد البيانات الرئيسية.

ومع ذلك، إذا كنت تريد بعض الموارد للتعرف على موضوع المشاركة، فجرّب ما يلي:

نصائح أخرى

وأنا أتفق مع الملاحظة مايك ودهاوس أن الحجم الحالي لا ينبغي أن يكون مشكلة - ويوافق السائل

.

ومعظم نظم إدارة قواعد البيانات التجارية تقديم الدعم للجداول مجزأة في بعض لأو لآخر، تحت اسم واحد أو عدة أشخاص آخرين. أحد الأسئلة الرئيسية هو ما إذا كان هناك طريقة معقولة لتقسيم البيانات إلى أجزاء. طريقة واحدة مشتركة هي أن تفعل ذلك استنادا إلى التاريخ، لذلك كل القيم، مثلا، نوفمبر 2008 الذهاب في جزء واحد، تلك أكتوبر 2008 إلى آخر، وهلم جرا. وهذا له مزايا عندما يأتي الوقت لإزالة البيانات القديمة. ربما يمكنك إسقاط البيانات التي تحتوي على جزء من أكتوبر 2001 (سبع سنوات الاحتفاظ بالبيانات) دون التأثير على الأجزاء الأخرى. هذا النوع من التشرذم يمكن أن يساعد أيضا مع "القضاء جزء '؛ إذا كان الاستعلام الواضح أنه لا يمكن تحتاج لقراءة البيانات من جزء معين، وبعد ذلك سيتم تركها غير مقروء، التي يمكن أن تعطيك فائدة الأداء الرائع. (على سبيل المثال، إذا كان محسن يعرف أن الاستعلام عن تاريخ في أكتوبر 2008، فإنه سيتم تجاهل جميع أجزاء عدا واحد الذي يحتوي على البيانات من أكتوبر 2008).

وهناك تقنيات تجزئة أخرى - جولة روبن بتوزيع الحمل عبر أقراص متعددة، ولكن يعني أنك لا يمكن أن تستفيد من إلغاء جزء

.

و10 ملايين الصفوف في الحقيقة ليست كبيرة من حيث DBMS وكنت أن تبحث أولا في بلدي الفهرسة والاستعلام خطط قبل البدء في وضع خطة لتوزيع المادي للبيانات مع شظايا أو الجدران، التي لا ينبغي أن يكون حقا ضرورية حتى الجدول الخاص بك نمت من قبل اثنين من أوامر من حجمها.

جميع IMHO، بطبيعة الحال.

في تجربتي، جداول كبيرة تصل دائما على الجانب I / O. أرخص الحل هو إضافة ما يكفي من المؤشرات بأعمدة بحيث كل ما تبذلونه من الاستفسارات يمكن الحصول على البيانات مباشرة من مؤشر، دون الحاجة إلى تحميل صفحات البيانات الرئيسية. وهذا يجعل إدراج والتحديثات الخاصة بك أكثر I / O مكثفة، ولكن هذا قد يكون موافق. الخيار السهل القادم هو الحد الأقصى من RAM في الخادم الخاص بك. لا يوجد سبب لديها أقل من 32GB إذا قاعدة البيانات الخاصة بك كبيرة. ولكن في النهاية سوف لا تزال تجد نفسك I / O منضم وعليك أن تبحث في شراء الكثير من محركات الأقراص الصلبة والحفاظ على نظام التقسيم معقدة، والتي تكلف ثروة بين الأجهزة والعمل. وآمل أن يكون هناك بديل أفضل في هذه الأيام - نقل قاعدة بيانات من الغزل الصعب يدفع إلى SLC محركات الأقراص الصلبة - وهذا ينبغي أن يصبح لديك عشوائي يقرأ ويكتب مئة مرة أسرع من أعلى خط محركات الأقراص SAS، وإزالة I / O عنق الزجاجة. تبدأ سواقات في 10 $ لكل غيغابايت، لذلك كنت ذاهب لقضاء بضعة الكبرى لكنه ما زال أرخص بكثير من مناطق التخزين، وما إلى ذلك.

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