Welcome 微信登录

首页 / 数据库 / MySQL / MySQL索引之隔离列

如果在查询中没有隔离索引的列,mysql通常不会使用索引。“隔离“列意味着它不是表达式的一部分,也没有位于函数中。例如:mysql>select id from test where id +1 =5;我们能轻易地看出where子句中的id等4,但是mysql却不会帮你求解方程,这取决于自己。我们应该养成简化where子句的习惯,这样就会把被索引的列单独放在比较运算符的一边。再例如:mysql>select ... where TO_DAYS(CURRENT_DATE) - TO_DAYS(date_col)<=10;这个查询会查找date_cool值离今天不超过10天的所有行,但是它不会使用索引,因为使用了TO_DAYS()函数。稍作修改:mysql>select ... where data_cool >= DATE_SUB(CURRENT_DATE,INTERVAL 10 DAY);这个查询就可以使用索引,但是它还可以改进。使用CURRENT_DATE将会阻止查询缓存把结果缓存起来,可以用常量替换掉CURRENT_DATE的值:mysql>select ... where date_cool >= DATE_SUB("2012-08-29",INTERVAL 10 DAY);MySQL索引之哈希索引Oracle返回星期几的函数相关资讯      MySQL索引 
  • MySQL中索引和优化的用法总结  (今 14:24)
  • MySQL 全索引扫描的bug  (11/11/2015 14:04:56)
  • MySQL索引和优化查询  (05/17/2015 14:16:03)
  • MySQL索引下推技术  (02月23日)
  • MySQL (ICP) 索引条件下推对比  (09/17/2015 19:11:44)
  • MySQL理解索引、添加索引的原则  (05/17/2015 14:15:05)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规