SQL索引失效的5种情况分析

标签: sql 索引 分析 | 发表时间:2015-01-20 14:13 | 作者:Sakurae
出处:http://www.iteye.com
SQL索引失效的5种情况分析
   这篇文章主要给大家介绍mysql索引失效的5种情况分析,需要的朋友可以参考下
  索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:
如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因)



  注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引
  2.对于多列索引,不是使用的第一部分,则不会使用索引
3.like查询是以%开头



4.如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不使用索引



  5.如果mysql估计使用全表扫描要比使用索引快,则不使用索引
  此外,查看索引的使用情况
  show status like ‘Handler_read%';
  大家可以注意:
handler_read_key:这个值越高越好,越高表示使用索引查询到的次数 handler_read_rnd_next:这个值越高,说明查询低效
分享自多备份论坛bbs.dbfen.com 转载请注明出处



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [sql 索引 分析] 推荐:

SQL Server--索引

- - CSDN博客推荐文章
         1,概念:  数据库索引是对数据表中一个或多个列的值进行排序的结构,就像一本书的目录一样,索引提供了在行中快速查询特定行的能力..             2.1优点:  1,大大加快搜索数据的速度,这是引入索引的主要原因..                             2,创建唯一性索引,保证数据库表中每一行数据的唯一性..

SQL索引失效的5种情况分析

- - SQL - 编程语言 - ITeye博客
SQL索引失效的5种情况分析.    这篇文章主要给大家介绍mysql索引失效的5种情况分析,需要的朋友可以参考下.   索引并不是时时都会生效的,比如以下几种情况,将导致索引失效:. 如果条件中有or,即使其中有条件带索引也不会使用(这也是为什么尽量少用or的原因).   注意:要想使用or,又想让索引生效,只能将or条件中的每个列都加上索引.

索引SQL优化

- - SQL - 编程语言 - ITeye博客
(一)深入浅出理解索引SQL优化 (转).         实际上,您可以把索引理解为一种特殊的目录. 微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引). 下面,我们举例来说明一下聚集索引和非聚集索引的区别:  .

sql优化-6(索引)

- - 数据库 - ITeye博客
索引查询要尽可能的避免回表,如果不可避免,需要关注聚合因子是否过大. 那么该条SQL将进行表扫描,扫描所有该表的数据块. 从数据块中找到记录,并且进行过滤. 可想而知,没有索引将会导致扫描该表所有数据块,性能低下. 那么该条SQL将进行索引扫描,在索引中找到b=5的位置,一般只需要扫描3个块左右就找到了.

mysql索引合并:一条sql可以使用多个索引

- - 博学无忧
mysql的索引合并并不是什么新特性. 早在mysql5.0版本就已经实现. 之所以还写这篇博文,是因为好多人还一直保留着一条sql语句只能使用一个索引的错误观念. 本文会通过一些示例来说明如何使用索引合并. 下面我们看下mysql文档中对索引合并的说明:. 根据官方文档中的说明,我们可以了解到:.

oracle sql 执行计划分析

- - CSDN博客数据库推荐文章
oracle sql 执行计划分析.     今天是2013-10-08,时间过的非常快,十月一就这样过去了,回想一下我感觉还是蛮不错的,1号与Amy相约青岛,两个人痛快的玩了两天,我们拍了很多照片,也感受到了彼此的快乐. 四号到家开始在家干农活,在昨天的晚上我和我爸妈一直忙到晚上11点才把所有的棒子都剥完了.

SQL Server 查询性能优化——堆表、碎片与索引(一)

- - 博客园_首页
      SQL Server在堆表中查询数据时,是不知道到底有多少数据行符合你所指定的查找条件,它将根据指定的查询条件把数据表的全部数据都查找一遍. 如果有可采用的索引,SQL Server只需要在索引层级查找每个索引分页的数据,再抓出所需要的少量数据分页即可. 访问数据表内数以万计的数据分页与只访问少数索引的分页两者间的差异,让索引变成效能调校的最佳工具.

SQL Server 查询性能优化——创建索引原则(一)

- - 博客园_首页
索引是提高查询性能的一个重要工具,索引就是把查询语句所需要的少量数据添加到索引分页中,这样访问数据时只要访问少数索引的分页就可以. 但是索引对于提高查询性能也不是万能的,也不是建立越多的索引就越好. 索引建少了,用WHERE子句找数据效率低,不利于查找数据. 索引建多了,不利于新增、修改和删除等操作,因为做这些操作时,SQL SERVER除了要更新数据表本身,还要连带地立即更新所有的相关索引,而且过多的索引也会浪费硬盘空间.

sql优化策略之索引失效情况二

- - Oracle - 数据库 - ITeye博客
接第一篇索引失效分析: http://grefr.iteye.com/blog/1988446. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: .

Oracle SQL建立有效索引减少回表

- - Oracle - 数据库 - ITeye博客
回表:在数据中,当查询数据的时候,在索引中查找索引后,获得该行的rowid,根据rowid再查询表中数据,就是回表. 在数据库中,数据的存储都是以块为单位的,称为数据块,表中每一行数据都有唯一的地址标志ROWID. 每次使用SQL进行查询的时候,都要扫描数据块,找到行所在的ROWID,再扫描该表的数据块.