2

我在 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;

谢谢

4

1 回答 1

2

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

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

你能描述一下你的应用吗?Columnstore 并不是适合所有人的解决方案;它有一个相当狭窄的利基市场。也许 InnoDB 对您的应用程序会更好。

于 2017-07-08T17:08:23.390 回答