教程集 www.jiaochengji.com
教程集 >  数据库  >  mysql  >  正文 mysql索引之隔离列的方法

mysql索引之隔离列的方法

发布时间:2016-05-17   编辑:jiaochengji.com
本文介绍了mysql索引中有关隔离列的用法,如果在查询中没有隔离索引的列,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索引之隔离列的方法
mysql创建与删除索引实例
mysql索引创建、删除与查看
mysql索引创建与删除命令
mysql索引的建立原则
Mysql索引分类与优化
MySQL索引的创建、删除和查看
mysql索引的查看、创建与删除
mysql索引管理 mysql创建索引
mysql查看索引方法

关键词: mysql索引   
[关闭]
~ ~