max min优化

奇技淫巧!

min/max优化 在表中,一般都是经过优化的. 如下地区表

id

area

pid

1

中国

0

2

北京

1

...



3115


3113

 

我们查min(id), id是主键,查Min(id)非常快.

 

但是,pid上没有索引, 现在要求查询3113地区的min(id);

 

select min(id) from it_area where pid=69;  

 

试想 id是有顺序的,(默认索引是升续排列), 因此,如果我们沿着id的索引方向走,

那么  第1个 pid=69的索引结点,他的id就正好是最小的id.

select  id  from it_area use index(primary) where pid=69 limit 1;

 

|       12 | 0.00128100 | select min(id) from it_area where pid=69                         |

|       13 | 0.00017000 | select id from it_area  use index(primary) where pid=69  limit 1 |

max min优化

type为ALL,显然对整张表扫描了一遍,然后用where来筛选pid=1087的

然而,先把pid=1087的找出来也要扫一遍,毕竟pid上没索引:

max min优化

用index(primary)后:

max min优化

虽然rows还是3044,但性能却好了:

max min优化

 

改进后的速度虽然快,但语义已经非常不清晰,不建议这么做,仅仅是实验目的.

上一篇:芯片市场低迷 SK海力士Q1利润大跌69%


下一篇:Adobe photoshop cs6使用技巧之截取文字