文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MySQL Innodb 索引优化笔记

MySQL Innodb 索引优化笔记

时间:2006-12-11  来源:gladness

同事推荐给我一篇关于MySQL Innodb索引的文章,非常有价值,原文链接:
http://xaprb.com/blog/2006/07/04/how-to-exploit-mysql-index-optimizations/

记录要点如下:
InnoDB为每个表建立一个clustered索引。如果该表有主键的话,那么clusterd索引就是主键。否则会为每一行数据分配一个6字节的唯一标识,用作clustered索引。
Innodb的索引都是BTREE索引。而主键的页节点就是每一行的所有数据。


而副索引(secondary index),即非主键索引,它的页节点是主键的值。这样副索引就独立于主键的物理顺序了,同时副索引并不直接指向某一行数据。基于副索引的搜索会比基于主键的搜索开销大一些,因为通过副索引得到的只是主键的值,还需要通过主键去得到该行记录的数据。
副索引的这种结构提供了不同于其他数据库引擎的优化方式。每一个副索引都包含了主键的值。如果一个查询的结果集只包含主键列和副索引列,那么这个查询可以直接从副索引中得中,而不需要访问表中的数据。
其二,如果副索引是联合索引,包含主键列,并且主键列排在索引的最后面时,这样的副索引是完全没有必要的。
从这个角度,也得出尽量不要使用select *。因为如果仅使用需要的列,是有可能用到上面所说的优化方式的。
也说明了在INNODB中,主键如果比较长,会比较占空间的一个原因。因为每个副索引中都有主键的值。
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载