Créer une table
ttl- durée de vie des valeurs. Le TTL est exprimé en secondes. Si le TTL vaut 0, une instance RocksDB standard est utilisée (sans TTL).rocksdb_dir- chemin vers le répertoire d’une instance RocksDB existante ou chemin de destination de l’instance RocksDB créée. Ouvre la table avec lerocksdb_dirspécifié.read_only- lorsqueread_onlyest défini sur true, le mode lecture seule est utilisé. Pour un stockage avec TTL, la compaction ne sera pas déclenchée (ni manuellement ni automatiquement), donc aucune entrée expirée ne sera supprimée.primary_key_name– n’importe quel nom de colonne dans la liste des colonnes.primary keydoit être spécifiée ; elle ne prend en charge qu’une seule colonne. La clé primaire sera sérialisée au format binaire commerocksdb key.- les colonnes autres que la clé primaire seront sérialisées au format binaire comme valeur
rocksdb, dans l’ordre correspondant. - les requêtes avec filtrage sur la clé via
equalsouinseront optimisées en recherche de plusieurs clés dansrocksdb.
optimize_for_bulk_insert– la table est optimisée pour les insertions en masse (le pipeline d’insertion créera des fichiers SST et les importera dans la base de données rocksdb au lieu d’écrire dans les memtables) ; valeur par défaut :1.bulk_insert_block_size- taille minimale des fichiers SST (en nombre de lignes) créés par insertion en masse ; valeur par défaut :1048449.
Métriques
system.rocksdb, qui fournit des statistiques sur rocksdb :
Configuration
count(). Pour activer cette
optimisation, définissez optimize_trivial_approximate_count_query = 1. Ce paramètre affecte également system.tables pour le moteur EmbeddedRocksDB ;
activez-le pour voir des valeurs approximatives de total_rows et total_bytes.
Opérations prises en charge
Insertions
EmbeddedRocksDB, si la clé existe déjà, la valeur est mise à jour ; sinon, une nouvelle clé est créée.
Exemple :
Suppressions
DELETE ou de TRUNCATE.
Mises à jour
ALTER TABLE. La clé primaire ne peut pas être modifiée.
Jointures
direct spéciale avec des tables EmbeddedRocksDB est prise en charge.
Cette jointure directe évite de construire une table de hachage en mémoire et accède
directement aux données dans EmbeddedRocksDB.
Avec de grosses jointures, l’utilisation de la mémoire peut être nettement plus faible avec les jointures directes,
car la table de hachage n’est pas créée.
Pour activer les jointures directes :