Home >Backend Development >PHP Tutorial >【百度分享】MySQL 5.1分区技术初探(五),该如何解决

【百度分享】MySQL 5.1分区技术初探(五),该如何解决

WBOY
WBOYOriginal
2016-06-13 10:04:48811browse

【百度分享】MySQL 5.1分区技术初探(五)
3.1 单表查询 
  从销售记录中找到1999年整年的销售记录有多少条,这个很简单,查询语句如下: 
  select count(*) from salaries s where s.from_date between "1999-01-01" and "1999-12-31" ; 
  那么对于分区前后的查询性能却有很大的差别: 

 通过如上可知,利用分区之后它只需扫描p16分区,访问的记录明显减少,所以性能自然有较大的提升:

无采用分区技术 采用分区技术 
3.2 单表查询-BAD Case 
  若现在有如下查询: 
  select count(*) from salaries s where year(s.from_date)=1999; 
  那么它是否能够利用到分区技术呢,答案是否定的。为什么呢,因为分区中的key是s.from_date,而不是year(s.from_date),mysql并不能很智能地判断year是1999的,那么它就是分为p16分区,这个可以通过如下的查询计划可以证实: 

也就是其实它访问了所有的分区,所以并没有很好地利用分区功能,将SQL改写如下: 
  select count(*) from salaries s where year between '1999-01-01' and '1999-12-31' ; 
  则查询计划如下: 

可知,书写正确的SQL可以完全表现出两种相差特别大的性能。

------解决方案--------------------
学习,学习。
------解决方案--------------------
学习 学习
------解决方案--------------------
恩 不错
------解决方案--------------------
进来看看,学习一下。
------解决方案--------------------
mark mark baidu
------解决方案--------------------
顶顶顶顶。。。。。
------解决方案--------------------
进来看看Mysql
------解决方案--------------------
飘过~~~~
------解决方案--------------------
学习,看看哈!
------解决方案--------------------
人云亦云来着~ 也来看看
------解决方案--------------------
学习~
------解决方案--------------------
这个要学习。
------解决方案--------------------
看得不是很懂。路过学习了。
------解决方案--------------------
hao 

------解决方案--------------------
路过啊。。。看看
------解决方案--------------------
我也来回回看
------解决方案--------------------
学习一下了。
------解决方案--------------------
是因为mysql的关系所以这里这么热闹的吗?
听说只要回复了,就有十个积分。不知道是真是假!
------解决方案--------------------
学习,学习!
------解决方案--------------------
遇到过这样的面试题,当时回答正确了,嘎嘎
------解决方案--------------------
为什么都看不懂
------解决方案--------------------
我正在学习mysql呢
------解决方案--------------------
学习一下,谢谢楼主
------解决方案--------------------
版主看不清楚啊

------解决方案--------------------
不是很清楚啊
------解决方案--------------------
晕。。。。。
------解决方案--------------------
来学习了,谢谢楼主!
------解决方案--------------------

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn