如何在 tarantool 中将乙烯基转换为 memtx?

问题描述

我在 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中转换? 试图在 documentation 中找到,除了 create 中与引擎相关的 Box.space 之外没有其他方法

如果有办法重命名旧表,请使用适当的引擎创建一个新空间,从旧表插入,然后删除旧表。

解决方法

您可以使用 tarantool/dump 进行转储/恢复

或者你可以走遍整个空间并逐行复制

或者创建一个改变引擎的副本