Создание таблицы
ttl- время жизни значений. TTL указывается в секундах. Если TTL равен 0, используется обычный экземпляр RocksDB (без TTL).rocksdb_dir- путь к каталогу существующей RocksDB или путь назначения для создаваемой RocksDB. Таблица открывается с указаннымrocksdb_dir.read_only- еслиread_onlyустановлено в true, используется режим только для чтения. Для хранилища с TTL compaction не будет запускаться ни вручную, ни автоматически, поэтому записи с истекшим сроком жизни не будут удаляться.primary_key_name– любое имя столбца в списке столбцов.primary keyдолжен быть указан; поддерживается только один столбец в первичном ключе. Первичный ключ будет сериализован в бинарном виде какrocksdb key.- столбцы, кроме первичного ключа, будут сериализованы в бинарном виде как значение
rocksdbв соответствующем порядке. - запросы с фильтрацией по ключу через
equalsилиinбудут оптимизированы в поиск по нескольким ключам вrocksdb.
optimize_for_bulk_insert– таблица оптимизирована для массовых вставок (конвейер вставки будет создавать SST-файлы и импортировать их в базу данных rocksdb вместо записи в memtables); значение по умолчанию:1.bulk_insert_block_size- минимальный размер SST-файлов (в строках), создаваемых при массовой вставке; значение по умолчанию:1048449.
Метрики
system.rocksdb, в которой представлена статистика RocksDB:
Конфигурация
count(). Чтобы включить эту
оптимизацию, задайте optimize_trivial_approximate_count_query = 1. Этот параметр также влияет на system.tables для движка EmbeddedRocksDB:
включите его, чтобы видеть приблизительные значения total_rows и total_bytes.
Поддерживаемые операции
Вставки
EmbeddedRocksDB, если ключ уже существует, значение обновляется; в противном случае создаётся новый ключ.
Пример:
Удаление
DELETE или команды TRUNCATE.
Обновления
ALTER TABLE. Первичный ключ изменять нельзя.
Операции JOIN
direct JOIN с таблицами EmbeddedRocksDB.
Этот direct JOIN позволяет избежать создания хеш-таблицы в памяти и обращаться
к данным напрямую в EmbeddedRocksDB.
При больших JOIN использование памяти при direct JOIN может быть значительно ниже,
поскольку хеш-таблица не создаётся.
Чтобы включить direct JOIN: