前言
事物:一个事务中可以包含多个DML语句,一个DDL语句或者一个DCL语句。
事务中的语句要么全部执行,要么全部不执行。
事务具有原子性,一致性,隔离性,持久性(ACID)
-
A 原子性:事务必须是一个自动工作的单元,要么全部执行,要么全部不执行。
-
C 一致性:事务把数据库从一个一致状态带入到另一个一致状态,事务结束的时候,所有的内部数据都是正确的。
-
I 隔离性:并发多个事务时,一个事务的执行不受其他事务的影响。
-
D 持久性:事务提交之后,数据是永久性的,不可再回滚,不受关机等事件的影响。 事务在如下情况终止:
-
遇到rollback 或commit命令
-
遇到DDL或者DCL语句.
-
系统发生错误,崩溃或者退出。
事务处理大致流程如下:
-- mysql是自动提交事务的
SET autocommit = 0 #关闭
SET autocommit = 1 #开启(默认)
-- 手动处理事务
SET autocommit = 0 #关闭自动提交
START TRANSACTION #标志一个事物的开始,后面的语句都属于同一个事务
-- 各种查询语句
SELECT ......FROM
-- 提交 (成功)
COMMIT
-- 回滚 (失败)
ROLLBACK
-- 事务结束
SET autocommit = 1
复制代码
索引
索引就是创建表时,列的内容不可重复的列就是索引。
如,CREATE INDEX 、定义主键约束或者唯一性键约束,可以间接创建索引、CREATE UNIQUE COUSTERED INDEX