1 存储引擎
1).概念
想想张马虎与李小心的列子就懂了!
create table account(id int, name varchar(10), money int)
engine = innodb charset = utf8;
2).常用的表的引擎
+-----------+----------+--------+
| 特点 | Myisam |InnoDB |
+-----------+----------+--------+
|批量插入速度| 高 | 低 |
+-----------+----------+--------+
| 事务安全 | | 支持 |
+-----------+----------+--------+
| 全文索引 | 支持 | 支持 |
+-----------+----------+--------+
| 锁机制 | 表锁 | 行锁 |
+-----------+----------+--------+
Myisam,批量插入速度快,不支持事务,锁表。
Innodb,批量插入相对较慢,支持事务,锁行。
全文索引,目前5.5的版本myisam,innodb都已经支持
2 事务
1).概念
通俗的说事务:指一组操作,要么都成功执行,要么都不执行-->原子性
在所有的操作没有执行完毕之前,其他会话不能够看到中间改变的过程-->隔离性
事务发生前,和发生后,数据的总额依然匹配-->一致性
当事务完成后,其影响应该保留下来,不能够撤销-->持久性
如果出了错误事务也不允许撤销,只能通过“补偿性事务”
2).关于事务的引擎
选用innodb
3).操作
开启事务:start transaction;
Sql...
Sql...
Commit 提交
rollback 回滚
注意:当一个事务commit,或者rollback就结束了!
还有一些语句会造成事务的隐式的提交,比如start transaction
事务的基本原理示意图: