似梦似醒

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

b tree索引

myisam 是通过物理位置来查找引用行的

innodb 是通过主键来查找引用行的

 

 

 

索引优化策略

b-tree索引对数据长度有限制,所以text等比较长的列可以建立前缀索引

 btree索引对键值的大小是有限制的

innodb 最大767字节,myisam 1000字节。 

大字符串创建索引,不能 很好的提高效率。可以使用前缀索引

 

为什么选择联合索引

如果同时用到几个列作为查询条件,比每一个列建立单独的索引要快。

 

什么是覆盖索引

http://wzmtony.blog.163.com/blog/static/20318015620130173619641/

覆盖索引概念:

  MySQL可以利用索引返回SELECT 列表中的字段。而不必根据索引再次读取数据文件。包含所有满足查询需要的数据的索引成为覆盖索引(Covering Index)。也就是平时所说的不需要回表操作。
判断标准:
 在查询前面使用explain,可以通过输出的extra列来判断,对于一个索引覆盖查询,显示为using index,MySQL查询优化器在执行查询前会决定是否有索引覆盖查询。

如果只读取索引就可以查找到所需要的数据的话,就会极大的较少数据的访问量。

处理顺序IO要比随机IO要快

 

模拟哈希索引步骤

先创建title_md5的列,

然后修改这个字段的值为 MD5(title)

可以创建触发器修改此列

查找的时候

------------------------------------------------------------------------------------------

 

 

posted on 2017-05-25 22:18  人生如梦,梦如人生  阅读(170)  评论(0编辑  收藏  举报