我有一个表按id进行分区,并通过对代码进行散列(都是整数)。 30个分区,每个分区散列4个,共120个子分区。MySQL忽略查询中的子分区
如果我做了选择上的ID独自一人,解释计划表明,它的正确修剪下来只有分区&与之相关的子分区(4)
如果我做了选择上的ID +代码,解释计划显示,它的正确修剪下来到与之相关的一个特定子分区(1)
无论其...
如果我做了选择上的代码独自一人,解释计划似乎表明MySQL是做了充分的表扫描(120个分区),而不是像甲骨文一样行动,只扫描每个分区的一个子分区相关的分区(总共30个)。
当我不能删除整个分区时,我是否必须做一些特殊的事情才能让MySQL利用子分区修剪?还是MySQL(至少5.1)只是不支持自己利用子分区?
您使用的是什么引擎类型? – Johan 2011-05-05 18:48:41
我使用InnoDB – Bitbang3r 2011-05-06 00:13:38
非常有趣。我很困惑,因为innoDB不会做散列键,但我想你的意思是存储在B +树中的计算散列。 – Johan 2011-05-06 04:27:41