ما هي أسهل طريقة لمحاكاة جدول قاعدة البيانات مع فهرس في متجر القيمة الرئيسي؟

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

سؤال

ما هي أسهل طريقة لمحاكاة جدول قاعدة البيانات مع فهرس في متجر القيمة الرئيسي؟ لا يحتوي متجر القيمة الرئيسي على استفسارات لا يتراوح ولا مفاتيح مطلوبة.

الأشياء التي أريد محاكاةها (حسب ترتيب الأولوية):

  1. إنشاء الجداول
  2. إضافة أعمدة
  3. إنشاء فهارس
  4. الاستعلام بناءً على المفتاح الأساسي
  5. الاستعلام بناءً على الأعمدة التعسفية
هل كانت مفيدة؟

المحلول

إذا كنت تستخدم ريديس (متجر متقدم من القيمة الرئيسية يدعم السلاسل والقوائم والمجموعات ، إلخ) ، فهذا أمر سهل للغاية. لقد طورت بالفعل C# Redis Client هذا له دعم أصلي لتخزين نماذج بيانات POCO. يمكن استخدام نفس POCO بالضبط بواسطة ormlite لتخزينها في RDBMS.

بالمناسبة ريديس سريع ، لدي أ معيار التي تخزن واسترجاع قاعدة بيانات NorthWind بأكملها (3202 سجل) في أقل من 1.2 ثانية (الجري داخل أسيء على 3yo imac).

أقوم بتخزين الكيانات بطريقتين

  • كيانات متميزة ، حيث أقوم بدمج اسم نوع الفصل والمفتاح الأساسي لإنشاء مفتاح فريد على سبيل المثال urn:user:1
    • أحافظ بعد ذلك على مجموعة منفصلة من المفاتيح الأولية (في مجموعة redis) لتتبع جميع كياناتاتي ، باستخدام مفتاح مثل: ids:user
  • في قائمة جانب خادم Redis - والتي تعمل إلى حد كبير مثل الجدول بدعم من الترحيل ، باستخدام مفتاح مثل: lists:user

نصائح أخرى

استخدم علامة التجزئة أو القاموس. إذا كنت تريد قيم مفاتيح فريدة ، فيمكنك استخدام Guid أو Hashcode.

يجب أن يدعم متجر القيمة الرئيسية طلب المفاتيح والوصول إلى المفاتيح.

ثم يجب عليك إنشاء اثنين من القواميس:

id -> payload

و

col1, id -> NULL

, ، أين payload يجب أن تحتوي على جميع البيانات التي سيحتوي عليها جدول قاعدة البيانات ، ويجب أن تحتوي مفاتيح القاموس الثاني على قيم (col1, id) من كل إدخال من القاموس الأول.

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