mysql的建表一般要建索引,那索引与数据的结构是怎样的呢?这很重要,清楚它能解决一些场景问题。
数据库索引相当于书本的目录,目录里面的是对应的页码,索引也是,当查询走索引时,找到索引,索引里面也有找到对应数据的路径,就是数据在磁盘上的物理地址,主索引,次索引都是这么存的,索引与数据分开了。这类索引就是非聚簇索引,myisam索引默认是这种结构。
聚簇索引是索引和数据放在一起了,这里的索引具体指的是主键索引,它上面的每个索引节点上会挂载着对应的数据,而次索引节点上存储的是主键;所以次索引在找到数据时会要先找到主键,再通过主键找到数据,因而当直接走主键索引的话,效率要高些。innodb用的这种结构。
链接见 http://blog.csdn.net/qq_25551295/article/details/48901317
索引的不同myisam与innodb文件构成也不同。myisam引擎分表定义文件、索引文件、数据文件来存在磁盘上面的;innodb都放在表空间。