سؤال

هل هناك أي DBS لـ Java يمكن تشغيله في وضع مضمن حيث يتم تخزين بعض الجداول في الذاكرة أثناء تحميل الآخرين من القرص؟ يبدو أن H2 و Javadb هما الزعيمين لـ Java DBS وأعلم أنهما لديهما وضع في الذاكرة ، لكن هل يجعلك تقوم بتحميل DB بالكامل في الذاكرة أو هل يمكنك أن تقرر على أساس كل طاولة على حدة؟

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

المحلول

هذا هو الأسئلة الشائعة عن الجدول المخزونات المذكورة في موقع HSQL.

• هل يقوم HSQLDB بتخزين جميع البيانات في الذاكرة. ألا تنفد الذاكرة نتيجة لذلك؟

• يخزن جميع البيانات في الذاكرة فقط إذا كنت تريد ذلك. بشكل افتراضي ، ينتج عن إنشاء جدول إنشاء جدول ذاكرة ، لأن هذا هو أفضل نوع للجداول الأصغر. بالنسبة للجداول الأكبر ، استخدم إنشاء جدول مخبئي وضبط حجم ذاكرة التخزين المؤقت لتجميع متطلبات استخدام الذاكرة الخاصة بك (أقل من 8 ميجابايت أو نحو ذلك). راجع الفصل في إدارة النظام ونشر الفصل من الدليل. لا توجد قاعدة بسيطة ولا فرض من جانب HSQLDB حيث يُسمح بالمرونة القصوى باستخدام اثنين فقط من الإعدادات. يتمثل الاستخدام الشائع لـ HSQLDB في تطبيقات OLAP و ETL و DATIONS حيث يتم استخدام تخصيصات ذاكرة Java الضخمة للاحتفاظ بملايين صفوف البيانات في الذاكرة.

أعتقد أن الطاولة المخبأة قوية بالفعل بما يكفي لتلبية حاجتك.

من http://hsqldb.org/web/hsqlfaq.html

المقارنة بين جدول ذاكرة التخزين المؤقت وجدول الذاكرة

تستخدم جداول الذاكرة والجداول المخزنة مؤقتًا لتخزين البيانات. الفرق بين الاثنين على النحو التالي:

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

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

حجم وقدرة ذاكرة التخزين المؤقت للبيانات لجميع الجداول المخزنة قابلة للتكوين. هذا يجعل من الممكن السماح لجميع البيانات في الجداول المخزنة مؤقتًا في الذاكرة. في هذه الحالة ، تكون سرعة الوصول جيدة ، ولكنها أبطأ قليلاً من جداول الذاكرة.

بالنسبة للتطبيقات العادية ، يوصى باستخدام جداول الذاكرة لكميات صغيرة من البيانات ، وترك الجداول المخزنة مؤقتًا لمجموعات البيانات الكبيرة. بالنسبة للتطبيقات الخاصة التي تكون فيها السرعة ذات أهمية كبيرة وتتوفر كمية كبيرة من الذاكرة المجانية ، يمكن استخدام جداول الذاكرة للجداول الكبيرة أيضًا.

يبدو أن هذه الميزة غير مدعومة من قبل H2 و Derby (Javadb) حتى الآن. صححني إذا لم تكن الحقيقة.

نصائح أخرى

معظم قواعد البيانات في الذاكرة (مثل HSQLDB لديك القدرة على تخزين بعض البيانات (أو جميع) إلى القرص. عادة ما يكون مستوى منخفض بما فيه الكفاية ، لذا فهو شفاف للمبرمج ولكنه بالتأكيد قابل للتكوين

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