首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用MariaDB engine ColumnStore缓慢创建表

用MariaDB engine ColumnStore缓慢创建表
EN

Stack Overflow用户
提问于 2020-04-18 19:08:15
回答 1查看 716关注 0票数 0
  1. 系统: Ubuntu 18-SSD
  2. MariaDB ColumnStore版本: 1.2.5
  3. 表行:3

如果您比较InnoDB在ColumnStore前面执行的create操作,InnoDB的运行速度是ColumnStore的X倍。

我已经用INSERT作为SELECT使用引擎ColumnStore执行了一些CREATE。结果非常缓慢。以下是顺序:

代码语言:javascript
复制
DROP table IF EXISTS example;

CREATE TABLE IF NOT EXISTS example
  (num INT(11),meta DECIMAL(14,4),min INT(11),max INT(11))
ENGINE=columnstore;

INSERT INTO example 
 (num, meta, min, max)
AS SELECT num, meta, min, max FROM old_example;

-- TIME TO EXECUTE
-- On row affected, taking 2.8s

现在,看看我是如何处理InnoDB的

代码语言:javascript
复制
DROP table IF EXISTS example;

CREATE TABLE IF NOT EXISTS example
  (num INT(11),meta DECIMAL(14,4),min INT(11),max INT(11))
  (SELECT num, meta, min, max FROM old_example);

-- TIME TO EXECUTE
-- On row affected, taking 103ms

注意1:我确实知道,在第一次操作中,我做了一个不同的操作,但是我跟踪了每个分离的查询,我发现使用ENGINE=ColumnStore的CREATE所用的时间太长了。注意到2:MariaDB专栏商店现在有创建作为选择操作了。

有鉴于此,以下是一些问题:

问题1:是否有一些MariaDB ColumnStore配置可以使创建表操作成为可能,然后更快地从另一个表插入数据?问题2,:MariaDB ColumnStore是否更快?

EN

回答 1

Stack Overflow用户

发布于 2020-04-26 22:57:52

速度差异是预料之中的。

根据时间,我怀疑数据集很小。

Columnstore是为处理非常大的数据集而设计的,因此没有针对微小集进行优化。

查看Columnstore的内部结构,您将发现每个列的一些大型结构、压缩和索引。此外,还有许多可能的压缩技术;它可能仔细研究数据,以决定为每一列使用哪一种。所有这些都是以牺牲任何其他操作为代价的选择的性能。

您的InnoDB表没有索引,没有压缩,而且磁盘内存虽然没有压缩,但可能要少得多。(有了更大的表,InnoDB就会更大。)

Columnstore有一个利基;为此使用它;不要期望它在所有领域都比InnoDB具有竞争力。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61294768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档