#tarantool
#tarantool
Вопрос:
Я создал таблицу в vinyl
engine (диск), как я могу преобразовать ее в memtx
engine (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
связанного с движком.
Если есть способ переименовать старую таблицу, создайте новое пространство с соответствующим движком, вставьте из старой таблицы, затем удалите старую таблицу.
Ответ №1:
Вы можете выполнить дамп / восстановление с помощью tarantool / dump
Или вы можете обойти все пространство и скопировать его строка за строкой
Или создайте реплику с измененным движком
Комментарии:
1. «Или создайте реплику с измененным движком». Я подозреваю, что это не очевидно, и необходима некоторая структура. Вы хотите установить триггер на _space?
2. Похоже, последний вариант частично описан здесь tarantool.io/en/doc/latest/reference/reference_lua/box_ctl /…