MySQL事务

什么是事务

要么都成功,要么都失败

事务原则:ACID原则   原子性,一致性,隔离性,持久性   (脏读,幻读...)

原子性(Atomicity)

要么都成功,要么都失败

一致性(Consistency)

事务前后的数据完整性要保证一致。

持久性(Durability)   --事务提交

事务一旦提交则不可逆,被持久化到数据库中!

隔离性

事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务操作数据所干事务之间要相互隔离。

 

事务

mysql是默认开启事务自动提交的
SET autocommit =0  --关闭
SET autocommit=1   开启(默认的)
手动处理事务
SET autocommit =0   关闭自动提交
事务开启
START TRANSACTION    标记一个事务的开始,从这个之后的sql都在同一事务内
INSERT xx
INSERT xx
-- 提交:持久化  (成功!)
COMMIT
--回滚
ROLLBACK
--事务结束
SET autocommit=1    --开启事务自动提交
--了解
SAVEPOINT  保存点名    --设置一个事务的保存点
ROLLBACK TO SAVEPOINT   保存点名   --回滚到保存点
RELEASE SAVEPOINT 保存点名   --撤销保存点

模拟转账: 事务

CREATE TABLE `account`(
`id` int(3) not null AUTO_INCREMENT,
`name` varchar(30) not null,
`money` decimal(9,2) not null,
PRIMARY key (`id`)
)engine =innodb DEFAULT CHARSET =utf8

insert into account(name,money)
values("A",2000.00),("B",10000.00)

set autocommit =0;  --关闭自动提交事务
start transaction  --开启一个事务

update account set money=money-500 where name="A"    -- A 减500
update account set money=money+500 where name="B"    -- B加500

commit ;  -- 提交事务
rollback;  -- 回滚事务

set autocommit=1;  -- 恢复默认值

索引

 

MySQL 官方索引的定义:索引(index)是帮助MySQL高校获取数据的数据结构,提取句子主干,就可以得到索引的本质,索引是数据结构。

http://blog.codinglabs.org/articles/theory-of-mysql-index.html

1.索引分类

  • 主键索引(PRIMARY KEY)

          唯一的标识,主键不可重复,只能有一个列作为主键

 

  • 唯一索引(UNIQUE KEY)

          避免重复的列出现,唯一索引可以重复,多个列都可以标识位,唯一索引

 

  • 常规索引(KEY/INDEX)

          默认的,index,key 关键字类设置。

 

  • 全文索引(FULLTEXT)

         在特定的数据库引擎下才有,MyISAM

         快速定位

MySQL事务

 

上一篇:TCL-事物隔离级别


下一篇:JDBC——Connection数据库连接对象