位置: 编程技术 - 正文

深入浅析MySQL COLUMNS分区(mysql column is ambiguous)

编辑:rootadmin

推荐整理分享深入浅析MySQL COLUMNS分区(mysql column is ambiguous),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql的lsn,mysqluc,mysql的lsn,mysql的column,mysql深入理解,深入浅析是什么意思,mysql的lsn,深入浅析是什么意思,内容如对您有帮助,希望把文章链接给更多的朋友!

介绍

COLUMN分区是5.5开始引入的分区功能,只有RANGE COLUMN和LIST COLUMN这两种分区;支持整形、日期、字符串;RANGE和LIST的分区方式非常的相似。

COLUMNS和RANGE和LIST分区的区别

1.针对日期字段的分区就不需要再使用函数进行转换了,例如针对date字段进行分区不需要再使用YEAR()表达式进行转换。

2.COLUMN分区支持多个字段作为分区键但是不支持表达式作为分区键。

COLUMNS支持的类型

整形支持:tinyint,smallint,mediumint,int,bigint;不支持decimal和float

时间类型支持:date,datetime

字符类型支持:char,varchar,binary,varbinary;不支持text,blob

一、RANGE COLUMNS分区

1.日期字段分区

1.插入测试数据

2.查询分区数据分布

当前有5个分区只插入了4条记录,其中C分区是没有记录的,结果和实际一样。

3.分析执行计划

第一条查询使用了函数导致查询没有走具体的分区而是扫描的所有的分区,而第二条查询执行语句查找具体的分区。

2.多个字段组合分区

注意:多字段的分区键比较是基于数组的比较。它先用插入的数据的第一个字段值和分区的第一个值进行比较,如果插入的第一个值小于分区的第一个值那么就不需要比较第二个值就属于该分区;如果第一个值等于分区的第一个值,开始比较第二个值同样如果第二个值小于分区的第二个值那么就属于该分区。

深入浅析MySQL COLUMNS分区(mysql column is ambiguous)

例如:

第一组值:(1,);1<5所以不需要再比较了,该记录属于p0分区。

第二组值:(,),>5,=且<,所以该记录属于P1分区

第三组值:(,),=但是>,所以它不属于p1,它满足<所以它属于p2

注意:RANGE COLUMN的多列分区第一列的分区值一定是顺序增长的,不能出现交叉值,第二列的值随便,例如以下分区就会报错

由于分区P2的第一列比P1的第一列要小,所以报错,后面的分区第一列的值一定要比前面分区值要大,第二列没规定。

二、LIST COLUMNS分区

1.非整形字段分区

LIST COLUMNS分区对分整形字段进行分区就无需使用函数对字段处理成整形,所以对非整形字段进行分区建议选择COLUMNS分区。

2.多字段分区

由于分区是组合字段,filtered只有%,对于组合分区索引也最好是建组合索引,其实如果能通过id字段刷选出数据,单独建id字段的索引也是有效果的,但是组合索引的效果是最好的,其实和非分区键索引的概念差不多。

备注:文章中的示例摘自mysql官方参考手册

三、移除表的分区

注意:使用remove移除分区是仅仅移除分区的定义,并不会删除数据和drop PARTITION不一样,后者会连同数据一起删除

总结

RANGE COLUMNS和LIST COLUMNS分区其实是RANG和LIST分区的升级,所以可以直接使用COLUMN分区。注意COLUMNS分区不支持timestamp字段类型。

以上所述是小编给大家介绍的MySQL COLUMNS分区,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对积木网网站的支持!

redhat7.1 安装mysql 5.7.步骤详解(图文详解) 在redhat下安装MySQL,步骤如下Mysql目录安装位置:/usr/local/mysql数据库保存位置:/data/mysql日志保存位置:/data/log/mysql下载安装包

Mysql Explain 详细介绍 MysqlExplain这里做一个资料的全面整理。一.语法explaintable_name例如:explainselect*fromt3whereid=;二.explain输出解释+----+-------------+-------+-------+-------------------+

使用JDBC在MySQL数据库中如何快速批量插入数据 使用JDBC连接MySQL数据库进行数据插入的时候,特别是大批量数据连续插入(W+),如何提高效率呢?在JDBC编程接口中Statement有两个方法特别值得注意:

本文链接地址:https://www.jiuchutong.com/biancheng/349233.html 转载请保留说明!

上一篇:用一句SQL解决SQL中断号问题 推荐(sqlyog语句)

下一篇:redhat7.1 安装mysql 5.7.10步骤详解(图文详解)(rhel安装mysql)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络