事务:
事务四大特性(简称ACID):原子性(Atomicity);一致性(Consistency);隔离性(Isolation);持久性(Durability)
开启事务: begin;
当事务打开的时候,在事务内部进行的逻辑操作不会对表本身有任何影响,只有在事务提交的时候才会显示出来.
事务回滚: rollback;
在事务没有提交之前,使用rollback可以将上一条逻辑运算给pass掉,即上一条逻辑操作不会产生任何作用.
提交事务: commit;
在提交事务之后,在事务内执行的逻辑操作会对表内数据进行修改
索引:
索引是什么:
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度
索引目的:
索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的,如果我想找到m开头的单词呢?或者ze开头的单词呢?是不是觉得如果没有索引,这个事情根本无法完成?
要注意的是,建立索引会占用磁盘空间,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立另外的索引。
索引类型: 主键,唯一,普通,联合
数据库引擎:
InnoDB:支持事务处理,支持外键,并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。
MEMORY:所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。