MariaDB ColumnStore一些限制和BUG总结
字段属性限制
1、不支持CHARACTER SET语法
MariaDB [test]> create table t1(id int,name varchar(10) CHARACTER SET utf8)
-> engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
2、不支持COLLATE语法
MariaDB [test]> create table t1(id int)
-> engine=Columnstore COLLATE=utf8_bin;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
MariaDB [test]> create table t1(id int,name varchar(10) COLLATE utf8_bin)
-> engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
3、不支持TEXT/BLOB
MariaDB [test]> create table t1(id int,info text)
-> engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
MariaDB [test]>
MariaDB [test]> create table t1(id int,info blob)
-> engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
4、不支持timestamp,后面的DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP全部删除
MariaDB [test]> create table t1(update_time timestamp)engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
MariaDB [test]> create table t1(update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP)
-> engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
5、decimal不能大于18
MariaDB [test]> create table t1(money decimal(19,2)) engine=Columnstore;
ERROR 1815 (HY000): Internal error: CAL0009: (3)Create table failed due to Syntax error: The maximum precision (total number of digits) that can be specified is 18
6、不支持ROW_FORMAT=COMPACT
MariaDB [test]> create table t1(id int)engine=Columnstore ROW_FORMAT=COMPACT;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
7、varchar最大8000
MariaDB [test]> create table t1(name varchar(8001))engine=Columnstore;
ERROR 1815 (HY000): Internal error: CAL0009: (3)Create table failed due to char, varchar and varbinary length may not exceed 8000
8、不支持bit类型
MariaDB [test]> create table t1(status bit)engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn't support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
9、comment不能携带''引号
MariaDB [test]> create table t3(id int comment '主键''ID')engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn't support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
10、行溢出,一行varchar不能大于65535(UTF8要除以3)
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
11、不支持enum枚举类型
MariaDB [test]> create table t1(`type` enum('HOLIDAY','WORKDAY') DEFAULT NULL)engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn't support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
12、不支持zerofill
MariaDB [test]> create table t2(id int(6) zerofill)engine=columnstore;
ERROR 1178 (42000): The storage engine for the table doesn't support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
BUG
不支持Reserved keywords保留关键字user、comment、match、key、update、status
https://jira.mariadb.org/browse/MCOL-1022
MariaDB [test]> create table user(id int)engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
MariaDB [test]> create table t1(comment varchar(100))engine=Columnstore;
ERROR 1178 (42000): The storage engine for the table doesn’t support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
SQL语句限制
1、distinct的字段不在order by里,就不能排序
MariaDB [test]> select distinct apply_time from test ORDER BY id limit 1;
ERROR 1178 (42000): The storage engine for the table doesn't support IDB-2022: ORDER BY column not in DISTINCT list.
https://jira.mariadb.org/browse/MCOL-1036
2、查询的字段不在group by里,就不能分组统计
MariaDB [test]> select id from test group by qq;
ERROR 1815 (HY000): Internal error: IDB-2021: 'test.id' is not in GROUP BY clause. All non-aggregate columns in the SELECT and ORDER BY clause must be included in the GROUP BY clause.
3、alter不支持change/modify更改字段属性
MariaDB [test]> alter table t1 change id id bigint;
ERROR 1815 (HY000): Internal error: CAL0001: Alter table Failed: Changing the datatype of a column is not supported
4、alter不支持多列操作和不支持after
MariaDB [test]> alter table t1 add age tinyint,add address varchar(100);
ERROR 1178 (42000): The storage engine for the table doesn't support Multiple actions in alter table statement is currently not supported by Columnstore.
MariaDB [test]> alter table t1 add age tinyint after id;
ERROR 1178 (42000): The storage engine for the table doesn't support The syntax or the data type(s) is not supported by Columnstore. Please check the Columnstore syntax guide for supported syntax or data types.
5、字段类型不同 join 关联查询报错
MariaDB [test]> select t1.id from t1 join t2 on t1.id=t2.cid;
ERROR 1815 (HY000): Internal error: IDB-1002: 't1' and 't2' have incompatible column type specified for join condition.
6、DML语句会非常慢
DML, i.e. INSERT, UPDATE, and DELETE, provide row level changes. ColumnStore is optimized towards bulk modifications and so these operations are slower than they would be in say InnoDB.
Currently ColumnStore does not support operating as a replication slave target.
https://mariadb.com/kb/en/library/columnstore-data-ingestion/
7、大批量数据导入text字段报内存不足
Internal error: CAL0001: Insert Failed: IDB-2008: The version buffer overflowed.
https://jira.mariadb.org/browse/MCOL-1056
8、不支持replace into和load data infile replace into
https://jira.mariadb.org/browse/MCOL-1080
MariaDB官方回复:覆盖写目前优先级较低,因为这是一个非常大的项目,预计执行成本很高。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Postgres-XL 集群详细创建步骤
最近公司业务需求,需要使用Postgres-XL 集群,关于这部分知识,网络资料不多。经过一段时间的查询,和各种弯路之后,终于完成安装。将详细步骤完整记录,以备查阅。也希望能帮到需要的人。 下面就开始吧: 主机列表和集群安装的角色分配 10.21.13.109GTM 10.21.13.67coordinator&datanode 10.21.13.60datanode 2.创建postgres用户,这部分我使用ansible完成的用户创建,以及相关软件包的应用,节省劳动力(yum其实可以使用ansible自带的方式,所以我ansible写的比较业余) ansibleall-mshell-a"useraddpostgres" ansibleall-mshell-a'echo"postgres:postgres"|chpasswd' ansibleall-mshell-a"yuminstall-yflexbisonreadline-develzlib-developenjadedocbook-style-dssslgcc" 3. 在每个节点上下载软件,并解压缩 ansibleall...
- 下一篇
IT设备的救命稻草-如何正确构建OOB带外网络
现实生活中,无论是传统的大型园区网络,运营商。或是现今流行的数据中心、虚拟化等技术,往往归根结底都是大量的网络设备以及服务器堆叠而成。自然而然,当网络或者服务器因为软件故障或者人为操作失误的原因导致系统宕机后,如何第一时间登陆到故障设备,并快速恢复业务已经成为考验运维人员的一大难题。 其实,试想如果网络中存在一个完善的OOB带外网络,在故障发生时,网络控制中心可通过此网络登录网络设备或者服务器的带外管理接口或者Console接口。从而第一时间获取故障信息并予以修正,或者收集log文件上报厂家。岂不美哉? OOB网络定义及现网问题分析 在详细介绍解决方案之前,先明确什么是OOB带外网络。 OOB全称Out Of Band,而OOB带外网络是指:通过一套与任何业务数据网络没有关联的独立网络,网络控制中心可以连接到各个服务器或者网络设备的管理接口或者console。此管理流量不会因业务数据网络重大故障而受其影响,故称之为带外网络。与之相对于的则是带内网络。 为什么需要OOB网络? 对很多企业或者运营商来说,当进行计划性的远端网络或系统维护时,往往会提前安排远端值班人员或者临时驻...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Mario游戏-低调大师作品
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器