是否需要为MySQL分区字段列构建一个单独的索引
正如我们都知道的,分区字段必须是主键的一部分。在构建复合主键之后,是否需要单独向字段添加索引你有什么效果吗核实一下,下面的话不要多说,一起来看看详细介绍。
1。新表effect_new(创建时间月分区)
创建表(` effect_new `
` ID ` bigint(20)不为空auto_increment,
`型` tinyint(4)不为空的默认'0',
`时区` varchar(10)默认为空,
`日期` varchar(10)不为空,
`小时` varchar(2)默认为空,
`位置` varchar(200)默认为空,
`国` varchar(32)不为空,
` create_time `日期不为空的默认'1970-01-01 00:00:00,
主键(` ID `,` create_time `),
关键` index_date_hour_coun `(`日期`,`小时`,`国`)
InnoDB引擎= = 983041 auto_increment默认的字符集utf8)
按范围分区(to_days(` create_time `))
(分区P0值小于(736754)= InnoDB引擎,
分区P1值小于(736785)= InnoDB引擎,
分区P2的值小于(736815)= InnoDB引擎,
p3分区值小于(736846)= InnoDB引擎,
分区P4值小于(736876)= InnoDB引擎,
分区P5值小于(736907)= InnoDB引擎,
分区P6值小于(736938)= InnoDB引擎,
分区P7值小于(736968)= InnoDB引擎,
分区P8值小于(736999)= InnoDB引擎,
分区P9值小于(737029)= InnoDB引擎,
分区P10值小于(737060)= InnoDB引擎);
2。插入部分数据数据,
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(L,R,R,R,R,R,R,R)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,R,D,R,D)。
插入` effect_new `(` ID `,`型`,`时区`,`日期`,`小时`,`位置`,`国`,` create_time `)是用来促进收敛(R,R,R,R,R,T,R,T,T,R,P,等等)。
三.分析表
解释分区
SELECT * FROM effect_new_index
在create_time = '2017-10-14 12:00:00
结果如下:
身份证件
select_type
表
分区
型
possible_keys
关键
key_len
裁判
排
过滤
额外的
一
简单的
effect_new
P8
所有
无效的
无效的
无效的
无效的
三十九万一千五百一十五
十
使用的地方
4、添加索引idx_ctime表effect_new
5。添加索引后的执行计划分析
结果如下:
身份证件
select_type
表
分区
型
possible_keys
关键
key_len
裁判
排
过滤
额外的
一
简单的
effect_new
P8
裁判
idx_ctime
idx_ctime
五
const
六万零七百六十
一百
无效的
6。结论:
虽然这个字段已经对表进行了分区,但这不能等同于索引,除了区域之外,只能说某个值的字段将在一个分区中,而不是一个索引,而是一个好的搜索。
有时,主键不等于列的分区,当主键要构建索引时,必须包含分区基列来构成复合键。因此,在这种情况下,分区是否有一个基于列的索引是的,但速度不够快。如果在这个复合索引中,分区不按列排列第一。它不够快。如果搜索区域经常使用分区作为过滤条件,则需要创建基于列的分区索引。
总结
以上就是本文的全部内容。本文还存在许多不足之处。希望本文对大家的学习或工作有一定的参考价值。如果有任何疑问,您可以留言交流,谢谢您的支持。