1.InnoDB,聚集索引,数据和索引放在一个ibd文件中,效率更高. 2.MySAM.非聚集索引,数据索引放在两个文件中,效率低于聚集索引. 3,InnoDB必须建主键,如果不建,mysql底层自动建主键,隐藏的,但对性能有影响. 4,主键推荐整型自增.比较时提高效率.优于uuid(字符串,占用字节大).
HASH,先对字段进行一次哈希运算,算出一个闪电值,也就是地址.相对磁盘I/O效率会高.工作中用的比较少.不用hash结构的原因是不能很好的支持范围查找. B+树,叶节点有双向指针(大于小于都可以查找),二叉树结构,左小于右,先排好序再查找,很好的支持范围查找.
5.联合索引,索引的(最左前缀原理)
6二叉树
二叉树容易单边增长,有弊端
7.红黑树(二叉平衡树,自动平衡,缺点数据很大的时候,树的高度会越来越高,同样效率不高)
8.b树,横向扩大数据量,一次磁盘I/O,横向元素,内存RAM查找,时间可以忽略不记
9B-Tree
10.B+Tree(非叶子节点不存储指针,数据,把data都存在叶子节点了)
11MySAM,Inoodb
11.2Inoofb(数据索引都放在ibd文件中,查找更快)
12.非主键索引
13.B-Tree
14.B+Tree,把数据移到叶子节点,是为了节省更多的非叶子节点(存储索引和指针,不存数据)空间,让其横向存储的更多.
为什么一个节点是16kb
15.