将包含许多列的记录插入MariaDB Columnstore表需要很长时间

时间:2017-07-03 10:23:41

标签: performance mariadb sql-insert columnstore

我在MariaDB列存储中有一个包含50列的表,插入单个记录需要5秒以上。我很惊讶地看到这一点。

我不确定是否预期,因为列数太多或者可能存在一些我可能做错的设置。

CREATE TABLE `mytable` (
   id` int(11) NOT NULL COMMENT 'autoincrement=1',
   // mostly int(10) and varchar(20) columns
) ENGINE=Columnstore DEFAULT CHARSET=latin1;

由于

1 个答案:

答案 0 :(得分:2)

由于存储数据的方式,它必须解压缩50个压缩的blob,每个压缩的blob最多可容纳64K行'值得一列,添加新单元格,然后重新计算最小值,最大值等,然后重新压缩。

收集大量行(数千个)并一次性插入它们要好得多。然后整个批次可能需要不超过5秒,因此每行平均只有几个毫秒

您会描述您的申请吗? Columnstore不是每个人的解决方案;它有一个相当狭窄的利基。也许InnoDB会更适合您的应用。