事务的特性:
原子性、一致性、隔离性、持久性
这里的一致性和分布式对应的一致性是不相同的。
数据库的一致性:对关系数据库完整性的保证,事务开始之前和事务结束之后关系数据库的完整性约束不会被破坏,和业务上的一致性。
分布式的一致性:分布式系统中多个存储副本数据的一致性。
索引是对数据库表中的一列或多列值进行排序的一种结构,使用索引可以快速访问表中的信息。
普通索引,唯一索引,主键索引,联合索引
作用
相当于目录,或者数组下标检索这么一个功能,快速找到所需内容, 提高性能
优点
缺点
添加索引:CREATE INDEX indexName ON tableName (colName);
查看索引:EXPLAIN SELECT colName from tableName;
参考:
AVL不适合作为索引的原因:没有充分利用局部性原理(当一个数据被用到时,其附近的数据也通常会马上被使用。),磁盘IO操作多。
B树,多路搜索树。
B树充分利用磁盘的预读功能。而AVL一次磁盘预读的时候有很多数据都用不上。
B树的一个节点存储多个关键字,节点大小设置为磁盘页的大小,每次读就读整个节点。
B树和AVL的查询次数相同,但是更多的情况不需要去磁盘去找数据,在内存中找,从而加快了速度。
B+树的数据记录全部放在叶子节点,非叶子节点用来做索引。而叶子节点的其中一个指针指向下一个叶子节点,提高了区间的访问性能。
B+树方便扫库,而B树必须按照中序的方式扫库。
或者B+说对Range Query很方便,而B树范围查询3-7的数据,查到的3后还必须的遍历树来找到下一个块的位置,直到下一个不满足的节点。而B+树可以直接通过叶子节点的指针顺序遍历找到下一个块。