索引是高效的数据接构
常见的数据接构,二叉树,红黑树,b树 b+树
一般表常用数据库引擎InnoDB存储引擎
InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,,InnoDB是默认的MySQL引擎。InnoDB主要特性有:
1、InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。
2、InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的
3、InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上
4、InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键
5、InnoDB被用在众多需要高性能的大型数据库站点上
以innodb的数据库 必须要有一个自增性的的主键,为了适配b+树结构
MyISAM存储引擎 不支持事务
二叉树当根节点很小时,就形成了一个连表形式,还是要全局查询
红黑树,当树的深度达到一定的时候。效率也会降低
b树,在叶子节点和分支节点都存有索引和和数据,mysql将以此磁盘的页数设置为16k
b+树采用左闭合区间,且采用自增主键去排序。数据内容只存在在于叶子节点中,
聚集索引就是将数据内容和索引放在一起比如 innodb引擎
非聚集索引将索引和数据分开存 先找到存放数据的地址,在通过地址去拿到数据内容