Mysql的索引及优化

一:四种存储引擎:

  mysql使用 show engines查询其存储引擎;

功  能 MYISAM Memory InnoDB Archive
存储限制 256TB RAM 64TB None
支持事物 No No Yes No
支持全文索引 Yes No No No
支持数索引 Yes Yes Yes No
支持哈希索引 No Yes No No
支持数据缓存 No N/A Yes No
支持外键 No No Yes No

二:

1:Mysql的常用操作及索引操作:http://www.cnblogs.com/whgk/category/916860.html

2:Mysql索引的数据结构和算法原理:http://www.uml.org.cn/sjjm/201107145.asp#nav-2

  1、目前大部分的数据库系统和文件系统都采用B-tree或者B+tree的结构作为索引结构。如mysql使用B+树作为索引结构。

  2、索引一般是存储在磁盘中的,系统先将索引读到主存,然而通过I/O操作读取磁盘的时间要高几个数量级。

  3、磁盘预读:即使只需要一个字节,磁盘也会从该位置开始向后读取一页(通常为4K)的数据放入内存,主存与磁盘间以页为单位进行数据交换。磁盘每次预读的长度一般为页的整数倍。

  4、B、B+树一次检索最多需要h-1次I/O,(根节点常驻内存,h为深度);

  5、Mysql采用InnoDB引擎,以B+树为索引结构:

    特点1:InnoDB的数据文件本身就是索引文件(叶节点包含完整的数据记录),而MyISAM索引与数据文件是分离的。

    特点2:InnoDB的附注索引的打他域存储的是相应主键的值,而不是地址。

3:各种索引的介绍:http://www.cnblogs.com/xiangyangzhu/p/index.html

原文地址:https://www.cnblogs.com/whtblog/p/8964322.html