数据库事务是并发控制的基本单位,具有四个属性:
1、原子性:事务是数据库逻辑工作的最小单位,要么全都做,要么全都不做
2、一致性:只有合法的数据可以写入数据库
3、隔离性:允许多个用户对同一个数据进行并发访问,而不破坏数据的正确性和完整性,同时,事务之间的修改是独立的。
4、持久性:事务完成之后,对系统的影响是永久的,真实地修改了数据库
什么是数据库索引?索引是对数据库表中一个或多个列的值进行排序的结构,目的是为了使查询效率更快,添加索引的方法有:1、添加主键
2、添加唯一索引
3、添加普通索引
4、添加全文索引
索引的最左匹配规则:最左优先,以最左边为起点任何连续的索引都能匹配上,遇到范围查询就会停止匹配
创建索引的时候,尽量创建联合索引,联合索引的规则是:首先会对复合索引的最左边的数据进行排序,然后再对第二个字段进行排序。联合索引首先是对第一个值排序,而第二个值是无序的
Innodb 存储引擎:innodb 是事务型数据库的首选引擎,支持事务安全表ACID,是 mysql 的默认存储引擎,支持行级锁,可以最大程度地支持开发,底层使用 B+ 树。
B 树:是平衡多路查找树:所有节点按照递增次序排列,遵循左小右大的原则,所有的叶子结点都在同一层,能够减少数据查找的次数和复杂度。
B+ 树:是在 B 树的基础上进行优化,使其更适合实现外存储索结构,所有的数据记录节点都是按照键值大小顺序存放在同一层的叶子节点上,而非叶子节点上只存储 key 值信息,这样可以大大加大每个节点存储的关键字的数量,降低树的高度。
B+ 树相对于 B 树的优化:层数更少、查询速度更稳定、具有排序的功能、全节点遍历更快(只需要遍历叶子结点)
innodb 是以 id 为索引的数据存储,通过 B+ 树对 id 建索引,然后在叶子节点中存储记录。
优化数据库查询性能的方法:1、建立索引:联合索引,覆盖索引,聚簇索引,普通索引,唯一索引
2、分库
3、建表时选用最适合的字段属性
4、使用连接(join)来代替子查询
5、使用事务
6、优化查询语句



