如何在 tarantool 中将乙烯基转换为 memtx?
How to convert vinyl to memtx in tarantool?
我在 vinyl
引擎(磁盘)中创建了一个 table,如何将其转换为 memtx
引擎(内存)?
我有一些小的 table 如果它转换为 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
table是vinyl
table,如何转换成memtx
?
试图在documentation中找到,除了create
中与引擎相关的create
之外没有其他方法。
如果有办法重命名旧的 table,请使用适当的引擎创建一个新的 space,从旧的 table 插入,然后删除旧的 table。
您可以 dump/restore 和 tarantool/dump
或者你可以遍历整个space并逐行复制
或者使用更改后的引擎创建副本
我在 vinyl
引擎(磁盘)中创建了一个 table,如何将其转换为 memtx
引擎(内存)?
我有一些小的 table 如果它转换为 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
table是vinyl
table,如何转换成memtx
?
试图在documentation中找到,除了create
中与引擎相关的create
之外没有其他方法。
如果有办法重命名旧的 table,请使用适当的引擎创建一个新的 space,从旧的 table 插入,然后删除旧的 table。
您可以 dump/restore 和 tarantool/dump
或者你可以遍历整个space并逐行复制
或者使用更改后的引擎创建副本