阅读背景:

mysql 分区查询优化

来源:互联网 



分区查询优化

  引入分区可以给查询带来必定的优势,但同时也会引入一些bug.
  
  分区最大的长处就是优化器可以依据分区函数来过滤掉一些分区,通过火区过滤可让查询扫描更少的数据。
  所以,对拜访分区表来讲,很主要的一点是要在where 条件中带入分区,让优化器过滤掉无需拜访的分区。
  
  可以通过查看explain履行筹划,是不是携带 partitions症结字来断定是不是履行了分区过滤。
  
  应用条件 where year(date) = 2010 其实不能过滤分区。
  mysql只能在应用分区函数的列本身进行比拟时能力过滤分区,而不能通过表达式的值去过滤分区,即便这个表达式就是分区函数也不行。
  这就和查询中应用独立的列能力应用索引的道理是一样的。所以只须要将上面的查询等价的改成
  where date between 2010-01-01 and 2010-12-31 便可以够过滤分区了。
  
  优化器在处置查询的进程中总是尽量聪慧的去过滤分区。例如,若分区表是关联操作中的第二张表,且关联条件是分区键,mysql就只会在对应的分区里匹配行,
  (explain 没法显示这类情形下的分区过滤,由于这是运行时的分区过滤,而不是查询优化阶段)
  
合并表
  合并表是一种过时的技巧,可能会被淘汰删除。分区和优化器联合才是未来的趋势。
  
  



分区查询优化

  引入分区可以给查询带来必定的优势,但同时也会引入一些bug.
  
  分




你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: