MySQL知识点回顾
覆盖索引
理解方式一:就是select的数据列只用从索引中就能取得,不必读取行数据,MySQL可以利用索引返回select列表的字段,而不必根据索引再次读取数据文件,换句话说查询列要被所建的索引覆盖。
理解方式二:索引是高效找到行的一个方法,但是一般数据库也能使用索引找到一个列的数据,因此它不必读取整个行。毕竟索引叶子节点存储了它们索引的数据;当能通过读取索引就可以得到想要的数据,那就不需要读取行了。一个索引包含了(或覆盖了)满足查询结果的数据就叫做覆盖索引。
注意
如果要使用覆盖索引,一定要注意select列表中只取出需要的列,不可select*,因为如果将所有字段一起做索引文件过大查询性能下降。
事务是属性(ACID)
原子性:事务是一个原子操作单元,其对数据的修改,要么全部执行,要么全部不执行;
一致性:在事务开始和完成时,数据都必须保持一致状态。这意为着所有相关的数据规则都必须用于事务的修改,以保持数据的完整性,事务结束时,所有内部数据结构(如B树索引或双向链表)也都必须是正确的;
隔离性:数据库系统提供一定的隔离机制,保证事务在不受外部并发操作影响下的独立环境执行。这意味着事务处理过程的中间状态是不可见的,反之亦然。
持久性: 事务完成后,它对于数据的修改时永久性的,即使出现系统故障也能保证。