mysql小结

InnoDB存储引擎:

InnoDB是mysql默存认的存储引擎,是事务性数据库的首选,其特点是行锁设计,支持非锁定读

InnoDB如何实现事务:通过锁来保证隔离性;通过redo,undo来保证数据的原子性,一致性,持久性

InnoDB如何避免幻读:通过锁定一个范围及记录本身,实现查询的可串行化

常见的索引算法:

索引本质上是一种数据结构

B树:二叉搜索树

B-Tree:多路搜索树,降低了搜索深度

B+Tree:在B-Tree的基础上,将非叶子节点作为叶子节点的索引,并在叶子节点间增加链表

B*Tree:在B+Tree的基础上,对非叶子节点间也增加链表,提高节点的利用率

Hash索引:只适合等值查询,不支持排序

InnoDB索引算法:

B+Tree & 自适应Hash索引

索引的使用:

1.复合索引中,注意索引的最佳左前缀特性

2.尽量使用短索引,减少磁盘的I/O操作

3.避免索引失效:索引不会包含nul值的列,不要对索引列进行计算

InnoDB的锁:

共享锁(读锁),排他锁(写锁),意向共享锁(表级),意向排他锁(表级)

数据库隔离级别:

对应解决更新丢失,脏读,不可重复读,幻读的情况

数据库性能调优:

硬件:CPU,内存,硬盘的性能

软件:连接数,缓存大小设置

算法:表设计(数据冗余,索引设计),SQL优化,分表分库

InnoDB与MyISAM的主要区别:

1.对事务的支持

2.锁的设计

3.索引的实现

你可能感兴趣的:(mysql小结)