1、事务四大特性(ACID)
1、原子性:不可再拆分,是最小的执行单位;
2、一致性:事务执行前后,数据保持一致;
3、隔离性:事务执行时,不受其他事务所干扰;
4、持久性:事务执行对数据库的改变是持久的;
2、事务产生的问题:
脏读:读未提交,读取数据时,读取到了别人没有提交的数据;
不可重复读:两次读取,数据不一致,可能是中间有人修改了数据;
幻读,两次读取数据不一致,可能是中间有人新增了数据;
3、数据库隔离级别
读未提交:可以读取别人没提交的数据,脏读,幻读,不可重复读都可能发生;
读已提交;只能读取别人提交的数据:解决了脏读
可重复读:解决了不可重复读 (mysql默认使用)
serializable:所有事务依次执行,解决了幻读,但是效率太慢;
4、数据库三范式
第一范式:每个列不可在拆分
第二范式:在第一范式的基础之上,非主键列必须完全依赖主键,而非主键的一部分
第三范式:在第二范式基础之上,非主键列不能依赖于其他列,只能依赖主键
5、mysql存储引擎innodb和myisam的区别
innodb:支持事务;查询慢,增删快;不支持全文索引
myisam:不支持事务,查询快,增删慢,支持全文索引
6、聚簇索引和非聚簇索引的区别是什么
聚簇索引是指索引和数据存储放在一块 叶子节点存放数据
非聚簇索引则是分开放 叶子节点存放的是数据对应的位置
7、什么是回表
回表就是通过数据库索引查询到数据所在行,再通过主键id查询未提供的数据