2017年8月18日

【转】同一个SQL查询语句,为什么使用到的索引不同?

摘要: 问: 同一个SQL查询语句,只是修改where条件中的一个值,为什么使用到的索引情况也会不同?谢谢!1) explain执行结果,如下图:2) 表中的数据如下图:3) 表结构如下图:4) 创建的索引如下图: 答: 前提:1.mysql用中索引是btree索引,也就是说索引是平衡二叉树结构2.你用的语 阅读全文

posted @ 2017-08-18 15:46 神奇的旋风 阅读(481) 评论(0) 推荐(0)

【转】避免全表扫描的sql优化

摘要: 对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描:· 使用ANALYZE TABLE tbl_name为扫描的表更新关键字分布。· 对扫描的表使用FORCE INDEX告知MySQL,相对于使用给定的索引表 阅读全文

posted @ 2017-08-18 14:26 神奇的旋风 阅读(249) 评论(0) 推荐(0)

【转】数据库中查询记录时是否每次只能使用一个索引?

摘要: 疑问: 在网上看一些文章的时候,发现好几次下面这样的话: 如果经常需要同时对两个字段进行AND查询,那么使用两个单独索引不如建立一个复合索引,因为两个单独索引通常数据库只能使用其中一个,而使用复合索引因为索引本身就对应到两个字段上的,效率会有很大提高。 但是,往往都没有说为什么?想知道以下问题:1、 阅读全文

posted @ 2017-08-18 11:16 神奇的旋风 阅读(212) 评论(0) 推荐(0)

【转】MySQL理解索引、添加索引的原则

摘要: 索引用于快速找出在某个列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行,还需要考虑每次读入数据页的IO开销。而如果采取索引,则可以根据索引指向的页以及记录在页中的位置,迅速地读取目标页进而获取目标记录。 大多数情况下都(默认)采用B树来构建索引。只是空间列 阅读全文

posted @ 2017-08-18 10:46 神奇的旋风 阅读(289) 评论(0) 推荐(0)

导航