إنشاء جدول
ttl- مدة بقاء القيم. تُقبل قيمة TTL بالثواني. إذا كانت TTL تساوي 0، فسيُستخدم مثيل RocksDB عادي (من دون TTL).rocksdb_dir- المسار إلى دليل RocksDB موجودة، أو مسار الوجهة لـ RocksDB التي سيتم إنشاؤها. يُفتح الجدول باستخدامrocksdb_dirالمحدد.read_only- عند تعيينread_onlyإلى true، يُستخدم وضع القراءة فقط. بالنسبة إلى التخزين الذي يستخدم TTL، لن يتم تشغيل عملية compaction (لا يدويًا ولا تلقائيًا)، لذلك لن تُزال أي مدخلات منتهية الصلاحية.primary_key_name– أي اسم عمود في قائمة الأعمدة.- يجب تحديد
primary key، وهو يدعم عمودًا واحدًا فقط في المفتاح الأساسي. سيُسلسل المفتاح الأساسي بصيغة binary باعتبارهrocksdb key. - ستُسلسل الأعمدة الأخرى غير المفتاح الأساسي بصيغة binary كقيمة
rocksdbبالترتيب المقابل. - ستُحسَّن الاستعلامات التي تتضمن تصفية للمفتاح باستخدام
equalsأوinإلى عمليات lookup متعددة المفاتيح منrocksdb.
optimize_for_bulk_insert– جرى تحسين الجدول لعمليات الإدراج المجمّعة (سينشئ مسار insert ملفات SST ويستوردها إلى قاعدة بيانات rocksdb بدلًا من الكتابة إلى memtables)؛ القيمة الافتراضية:1.bulk_insert_block_size- الحد الأدنى لحجم ملفات SST (من حيث عدد الصفوف) التي ينشئها الإدراج المجمّع؛ القيمة الافتراضية:1048449.
المقاييس
system.rocksdb، ويعرض إحصاءات rocksdb:
التهيئة
config:
count(). لتمكين هذا
التحسين، اضبط optimize_trivial_approximate_count_query = 1. يؤثر هذا الإعداد أيضًا في system.tables لمحرك EmbeddedRocksDB،
لذا فعِّل هذا الإعداد لرؤية القيم التقريبية لكلٍّ من total_rows وtotal_bytes.
العمليات المدعومة
عمليات الإدراج
EmbeddedRocksDB، إذا كان المفتاح موجودًا مسبقًا، فستُحدَّث القيمة، وإلا فسيُنشأ مفتاح جديد.
مثال:
الحذف
DELETE أو الأمر TRUNCATE.
التحديثات
ALTER TABLE. ولا يمكن تعديل المفتاح الأساسي.
عمليات ربط
direct مع جداول EmbeddedRocksDB.
يتجنب هذا الـ ربط المباشر إنشاء hash table في الذاكرة، ويصل
إلى البيانات مباشرةً من EmbeddedRocksDB.
مع عمليات ربط الكبيرة، قد تلاحظ انخفاضًا ملحوظًا في memory usage عند استخدام direct joins
لأنه لا يتم إنشاء hash table.
لتمكين direct joins: