我在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;
由于
答案 0 :(得分:2)
由于存储数据的方式,它必须解压缩50个压缩的blob,每个压缩的blob最多可容纳64K行'值得一列,添加新单元格,然后重新计算最小值,最大值等,然后重新压缩。
收集大量行(数千个)并一次性插入它们要好得多。然后整个批次可能需要不超过5秒,因此每行平均只有几个毫秒。
您会描述您的申请吗? Columnstore不是每个人的解决方案;它有一个相当狭窄的利基。也许InnoDB会更适合您的应用。