1、索引是什么?
索引类似于书的目录,帮助提高查找效率。索引是一种数据结构,数据库的索引使用b+树实现。
2、数据库的事务特性(ACID)
(1)原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。
(2)一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
(3)隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。SQL标准中定义了四个隔离级别:
读未提交,也就是会读取其他事务还未提交的数据,也就是脏读。
读已提交,也就是只读取其他事务已经提交的数据。但是会出现的问题是不可重复读,也就是在一个事务里,读取数据1,原来数据1=a,但是另一个事务同时修改了数据1,改成了b,那么第一个事务再读取一下这个数据1,这个数据1就=b。
可重复读,也就是在一个事务里,不管读这个数据几次,无论这个数据是否被其他事务修改,读取都是返回一样的值,但是会出现的问题是幻读,幻读则是数据行数可能会变更,例如我读取字段1=a的值,一开始读到两行数据,如果这个时候另一个事务插入了一行,那么可能再次读取时就会读到3行数据。
可串行化,也就是可以看作这些事务是串行执行的,不会出现上面的任何问题,当然性能也是最差的。
(4)持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障。
网友评论