ما هي الاعتبارات التي يجب مراعاتها عند اختيار SQL/NoSQL؟[مغلق]

StackOverflow https://stackoverflow.com/questions/2440079

سؤال

التطبيق المستهدف هو موقع ويب متوسط ​​الحجم تم تصميمه لدعم عدة مئات إلى عدة آلاف من المستخدمين في الساعة، مع خيار التوسع فوق ذلك.نموذج البيانات بسيط إلى حد ما، وإمكانية التخزين المؤقت عالية جدًا (~ 10:1 نسبة إجراءات القراءة والتحرير).

ما هي الاعتبارات التي يجب مراعاتها عند الاختيار بين مخزن بيانات علائقي قائم على SQL وخيار NoSQL (مثل HBase وCassandra)؟

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

المحلول

بالنسبة لي، ليس لديك أي مشكلة معينة لحلها.إذا كنت بحاجة إلى ACIDity، استخدم قاعدة بيانات؛إذا لم تقم بذلك، فلا يهم.في النهاية، ما عليك سوى إنشاء تطبيقك.واسمحوا لي أن أقتبس نوسقل:إلا إذا كان ذلك سهلا:

الشيء الحقيقي الذي يجب الإشارة إليه هو أنه إذا تم منعك من إنشاء شيء رائع للغاية لأنه لا يمكنك اختيار قاعدة بيانات، فأنت تفعل ذلك بشكل خاطئ.إذا كنت تعرف MySQL، استخدمه للتو.قم بالتحسين عندما تحتاج إلى ذلك بالفعل.استخدمه مثل متجر k/v، واستخدمه مثل rdbms، ولكن في سبيل الله، أنشئ تطبيقك القاتل!لن يكون أي من هذا مهمًا لمعظم التطبيقات.لا يزال Facebook يستخدم MySQL كثيرًا.تستخدم ويكيبيديا MySQL كثيرًا.يستخدم FriendFeed MySQL كثيرًا.تعد NoSQL أداة رائعة، لكنها بالتأكيد لن تكون ميزتك التنافسية، ولن تجعل تطبيقك رائجًا، والأهم من ذلك كله، لن يهتم المستخدمون بأي من هذا.

نصائح أخرى

ديج لديها بعض مثير للاهتمام مقالات على هذا السؤال.بشكل أساسي، أنت تقوم بتحويل عبء المعالجة إلى الكتابة بدلاً من القراءة، وهو ما قد يكون مرغوبًا فيه في التطبيقات القابلة للتطوير بشكل كبير.كاساندرا على وجه التحديد متاحة أيضًا بشكل كبير.

من السهل ، كاساندرا هي قاعدة بيانات موزعة مع نموذج بيانات bigtable يعمل على دينامو مثل البنية التحتية.إنه موجه نحو الأعمدة ويسمح بتخزين البيانات المنظمة نسبيًا.لديها نموذج لا مركزي بالكامل.كل عقدة متطابقة ولا توجد نقطة فشل واحدة.كما أنه متسامح للغاية خطأ.يتم تكرار البيانات إلى عقد متعددة وعبر مراكز البيانات.كاساندرا هي أيضا مرنة جدا.اقرأ وكتابة الإنتاجية بشكل خطي حيث تتم إضافة آلات جديدة.

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

http://www.rackspacecloud.com/blog/2010/02/25/should-you-switch-to-nosql-too/

عندما تقول أن نموذج البيانات بسيط إلى حد ما، فقد يشير هذا إلى خيار NoSQL.

عندما يكون لديك الكثير من السمات لإجراء التحديدات، أو تحميل المعاملات الثقيل أو هياكل الجدول المعقدة، فإن ذلك من شأنه أن يتحدث عن جداول SQL التقليدية.

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

عندما تواجه صعوبات مع NoSQL، فقد يشير هذا إلى خيار SQL.ولكن من الممكن أيضًا أن يتم التعامل مع الحمل الثقيل بشكل أفضل باستخدام NoSQL - ولكن من الممكن أيضًا أن يتم قياس قاعدة بيانات SQL الجيدة بشكل كافٍ ...

يمكن أيضًا إجراء التخزين المؤقت باستخدام خادم وكيل بسيط ...

فيما يتعلق بالصعوبات، يمكن أيضًا النظر في مزيج من NoSQL وSQL.

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