数据库知识点总概

    技术2023-08-23  97

    1.事务

    满足ACID特性的一组操作 ACID: 1.原子性:事务被视为不可分割的最小单元,事务的操作要么全部提交成功,要么全部失败回滚。 2.一致性:事务在执行前后保持一致性状态,所有事务对同一数据的读取结果是相同。 3.隔离性:一个事务所作的修改在最终提交之前,对其他事务不可见。 4.持久性:一旦事务提交,则其所作的修改将永远保存到数据库中,即使系统发生崩溃,事务执行的结果也不会丢失。

    2.并发一致性问题

    1.丢失修改:一个事务的更新操作被另一个事务的更新操作替换。 2.脏读:在不同事务下,当前 事务读取到了另一个事务修改但是并未提交的数据。 3.不可重复读:在一个事务多次读取同一个数据集合的时候,出现了读取数据不相同的情况。 4.幻影读:在不重复读的情况下,插入了新的数据。

    产生并发一致性问题的主要原因是破坏了事务的一致性,所以通过加锁来实现并发控制,来保证隔离性。

    3.隔离级别

    1.未提交读:事务中的修改,即使没有提交,对其他其他事务也是可见的。 2.提交读:一个事务只能读取已经提交的事务所作的修改,即一个事务所作的修改在提交之前对其它事务是不可见的。 3.可重复读:保证在同一事务中多次读取同一数据的结果是一样的。 4.可串行化:强制事务串行执行,这样事务之间互不干扰,不会出现一致性问题。

    4.数据库三大范式

    第一范式:每个列都不可再拆分。 第二范式:在第一范式的基础上,非主键列完全依赖于主键类,而不能是依赖于主键的一部分。即要求数据的每一个实例或行必须可以被唯一的区分。 第三范式:在第二范式的基础上,非主键列只能依赖于主键,不依赖于其他非主键。 BC范式: (1)所有非主属性对每一个码都是完全函数依赖; (2)所有的主属性对于每一个不包含它的码,也是完全函数依赖; (3)没有任何属性完全函数依赖于非码的任意一个组合。

    5.数据库引擎

    存储引擎Storage engine:MySQL中的数据、索引以及其他对象是如何存储的,是一套文件系统的实现。

    常用的存储引擎有以下:

    Innodb引擎:Innodb引擎提供了对数据库ACID事务的支持。并且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。 MyIASM引擎(原本Mysql的默认引擎):不提供事务的支持,也不支持行级锁和外键。 MEMORY引擎:所有的数据都在内存中,数据的处理速度快,但是安全性不高。

    MyISAM索引和InnoDB索引的区别:

    InnoDB索引是聚簇索引,MyISAM索引是非聚簇索引。 InnoDB的主键索引的叶子节点存储着行数据,因此主键索引非常高效。 MyISAM索引的叶子节点存储的是行数据地址,需要再寻址一次才能得到数据。 InnoDB非主键索引的叶子节点存储的是主键和其他带索引的列数据,因此查询时做到覆盖索引会非常高效。

    Processed: 0.009, SQL: 10