【发布时间】:2020-04-18 19:08:15
【问题描述】:
- 系统:Ubuntu 18 - SSD
- MariaDB 列存储版本:1.2.5
- 表格行数:3
对比一下InnoDB在ColumnStore前面的建表操作,InnoDB的运行速度比ColumnStore快X倍。
我已经使用引擎 ColumnStore 执行了一些带有 INSERT AS SELECT 的 CREATE TABLE。结果很慢。这是顺序:
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 的
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 TABLE 需要这么长时间。 注意 2:MariaDB 列存储现在有 CREATE AS SELECT operation。
鉴于此,这里有一些问题:
问题 1:我可以做一些 MariaDB ColumnStore 配置来使创建表操作然后从另一个表中插入数据更快吗? 问题 2:MariaDB ColumnStore 仅用于选择是否更快?
【问题讨论】:
-
为什么这很重要?您创建一个表一次,而不是频繁。
-
这听起来不像是您的代码有问题,所以我不知道您希望我们为您提供什么帮助。请参阅 mariadb.com/kb/en/mariadb-columnstore 获取 ColumnStore 论坛的链接和 MariaDB 的 Jira 系统以报告错误。
-
首先 maria 服务抓取代码,然后是列存储引擎,然后还有一个全部优化。坚果最耗时的是获得更快的选择和加入,您在创建/插入期间需要一些开销,另请参阅mariadb.com/kb/en/mariadb-columnstore-performance-concepts
-
@Barmar 这对我的申请很重要。这是一个转换数据并在仪表板中显示其结果的工作流。有时,一个工作流程会多次返回
create table
标签: mysql mariadb innodb columnstore