1、事务四大特性
原子性:要么执行,要么不执行
隔离性:所有操作全部执行完以前其它会话不能看到过程
一致性:事务前后,数据总额一致
持久性:一旦事务提交,对数据的改变就是永久的
2、数据库隔离级别
脏读:事务B读取事务A换没有提交的数据
不可重复读:俩次事务读的数据不一致
幻读:事务A修改了数据,事务B也修改了数据,这时事务A看来,明明修改了数据,咋不一样
3、MYSQL的俩种存储引擎区别(事务、锁级别等等),各自的使用场
引擎 | 特性 |
MYISAM | 不支持外键、表锁、插入数据时、锁定真个表、查表总行数时、不需全表扫描 |
INNODB | 支持外键、行锁、查表总行数时、全表扫描 |
4、索引有B+索引和hash索引索引
索引 | 区别 |
Hash | hash索引、等值查询效率高、不能排序、不能进行范围查询 |
B+ | 数据有序、范围查询 |
5、聚焦索引和非聚焦索引
索引 | 区别 |
聚焦索引 | 数据按索引顺序存储、中子结点存储真实的物理数据 |
非聚引索引 | 存储指向真正数据行的指针 |
6、索引的优缺点,什么时候使用,什么时候不能使用索引
索引最大的好处是提高查询速度
缺点是更新数据时效率低,因为要同时更新索引
对数据进行频繁查询和建立索引,如果要频繁更改数据不建议使用索引
7、InnoDB索引和MyISAM索引的区别
一是住索引的区别,InnoDB的数据文件本身就是索引文件。而MyISAM的索引和数据是分开的
二是辅助索引的区别,InnoDB的辅助索引data域存储相应记录
8、索引的底层实现(B+树,为何不采用红黑树,B树)
树 | 区别 |
红黑树 | 增加、删除,红黑树会进行频繁的调整,来保证红黑树的性质,浪费时间 |
B树叶就是B-树 | B树,查询性能不稳定,查询结果高度不致,每个结点保存指向真实数据的指针,相比B+树每一层 |
B+树 | B+树相比较于另外俩种树,显得更矮更宽,查询层次更浅 |