Я создал таблицу в движке vinyl
(диск), как мне преобразовать ее в движок memtx
(RAM)?
У меня есть небольшая таблица, которую было бы лучше преобразовать в memtx
для чего-то вроде этого:
WITH x AS ( -- big table that wont fit in memory
SELECT cat_id, click_count FROM bla WHERE user_id = ?
), mx AS (
SELECT MAX(click_count) max_click FROM x
)
SELECT IFNULL(x.click_count,0)/IFNULL((SELECT max_click FROM mx),1)
, listings.*
FROM listings -- a small table less than 100k records which better in memory
LEFT JOIN x
ON listings.cat_id = x.cat_id
ORDER BY 1 DESC
LIMIT 10
но в настоящее время таблица listings
является таблицей vinyl
, как преобразовать ее в memtx
?
пытался найти в документации, другого метода, кроме create
в box.space
, связанного с движком, нет.
Если есть способ переименовать старую таблицу, создайте новое пространство с соответствующим движком, вставьте из старой таблицы, а затем удалите старую таблицу.
Вы можете сделать дамп/восстановление с помощью tarantool/dump
Или вы можете пройтись по всему пространству и скопировать его ряд за рядом
Или создайте реплику с измененным движком
Похоже последний вариант частично описан здесь tarantool.io/ru/doc/latest/reference/reference_lua/box_ctl/…
«Или создать реплику с измененным движком». Я подозреваю, что это не очевидно, и необходима некоторая инструкция. Вы собираетесь установить триггер на _space?