摘要: MySQL有两种方式可以生成有序的结果:通过排序操作;或者按照索引顺序扫描;如果EXPLAIN 出来的结果的type列的值为“index”,则说明MySQL使用了索引扫描来做排序(不要和Extra列的“Using index”搞混)。 扫描索引本身是很快的,因为只需要从一条索引记录移动到紧接着... 阅读全文
posted @ 2015-11-24 23:23 郑彦秋 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 通常大家都会根据查询的WHERE 条件来穿件合适的索引,不过这只是索引优化的一个方面。设计优秀的索引应该考虑到整个查询,而不单单是WHERE 条件部分。索引确实是一种查找数据的高效方式,但是MySQL也可以使用索引来直接获取列的数据,这样就不再需要读取数据行。如果索引的叶子节点已经包含要查询的数... 阅读全文
posted @ 2015-11-24 00:10 郑彦秋 阅读(681) 评论(0) 推荐(0) 编辑
摘要: 聚簇索引并不是一种单独的索引类型,而是一种数据存储方式。具体的细节依赖于其实现方式,但innoddb 的聚簇索引实际上在同一个结构中保存了B-Tree索引和数据行。 当表有聚簇索引时,它的数据实际上存放在索引的叶子页(leaf page)中。术语‘聚簇’表示数据行和相邻的键值进错的存储在一起。... 阅读全文
posted @ 2015-11-23 22:42 郑彦秋 阅读(9619) 评论(2) 推荐(2) 编辑
摘要: 选择合适的索引列顺序 我们遇到的最容易起困惑的问题就是索引列的顺序。正确是顺序一来与使用该索引的查询,并且同时需要考虑如何更好的满足排序和分组的需要(顺便说明,本节内容使用与B-Tree索引;hash或者其他类型的索引并不会像B-Tree索引一样按照顺序顺序存储数据)。 在一个多列的B-Tr... 阅读全文
posted @ 2015-11-20 00:34 郑彦秋 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 高效的选择和使用索引有很多方式,其中有些事针对特殊案例的优化方法,有些则是针对特定行为的优化,使用哪个索引,以及如何评估选择不同索引性能影响的技巧,则需要持续不断的练习。接下来将介绍如何高效的使用索引。 独立的列 我们通常会看到一些查询不当的使用索引,或者是的MySQL无法使用已有的索引。如... 阅读全文
posted @ 2015-11-19 23:28 郑彦秋 阅读(1151) 评论(0) 推荐(0) 编辑
摘要: 索引可以让服务器跨苏的定位到指定的位置。但是这病不是索引的唯一作用,到目前位置都可以看到,根据创建索引的数据结构不同,索引也有一些其他的附加作用。 最常见的是B-Tree索引,按照属性存储的数据,所以MySQL 可以用来做ORDER BY 和GROUP BY 操作。因为数据是有序的,所以B-T... 阅读全文
posted @ 2015-11-19 22:10 郑彦秋 阅读(626) 评论(0) 推荐(0) 编辑
摘要: 如果需要存储大量的URL并需要根据URL进行搜索查找。如果使用B-Tree 来存储URL,存储的内容就会很大,因为URL本身都很长。正常情况下会有如下查询:SELECT id FROM url WHERE url="http://www.baidu.com"; 若删除原来URL上的索引,而新增... 阅读全文
posted @ 2015-11-19 21:55 郑彦秋 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 要理解Mysql 中索引是如何工作的,最简单的方法是去看一看书的"索引部分":如果想在一本书中找到某个特定的主题,一般先看书的"索引",找到对应的页码。 在Mysql中,存储引擎用类似的方法使用索引,其先在索引中找到对应的值,然后根据匹配的索记录找到对应的数据行。加入要运行下面的查询:sele... 阅读全文
posted @ 2015-11-18 23:23 郑彦秋 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 简而言之:是的,仍然需要理解索引,即使是使用对象关系映射(ORM)工具。 ORM工具能够产生符合逻辑的,合法的查询(多数的时候),除非只是生成非常基本的查询(例如仅是根据主键查询的),否则它很难生成适合索引的查询。无聊时多么复杂的ORM工具,在精妙和负责的索引面前都是“浮云”。很多时候,即使是... 阅读全文
posted @ 2015-11-18 22:22 郑彦秋 阅读(384) 评论(1) 推荐(0) 编辑
摘要: FLOAT 和DOUBLE 类型支持使用标准的浮点运算进行近似计算。 DECIMAL类型用于存储精确的小数。 因为cpu不支持对DECIMAL的直接计算,所以在Mysql5.0及更高的版本中,MYSQL服务器自身实现了DECIMAL的高精度计算。相对而言,cpu直接支持原生浮点计算,所以浮点... 阅读全文
posted @ 2015-11-18 00:00 郑彦秋 阅读(573) 评论(0) 推荐(0) 编辑