1、原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。
2、一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致。
3、隔离性(Isolation):一个正在执行的事务在执行完毕前,对于其他会话是不可见的,多个并发事物之间的数据是相互隔离的,还记得备份的参数吗?
mysqldump --help | grep single
--single-transaction
4、持久性(Durability):一个事物一旦被提交,它对数据库中的数据改变就是永久性的。如果出了错误,事物也是不允许撤销的,只能通过“补偿性事务”
MySQL开启事物。自动为开启状态
mysql> show global variables like "%autocommit%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON |
+---------------+-------+
1 row in set (0.01 sec)
mysql>
MYSQL默认是自动提交的,也就是你提交一个QUERY,它就直接执行!我们可以通过 set global autocommit= OFF禁止自动提交 set global autocommit=ON 开启自动提交
innodb特点: 1、Row-level locking 行锁 2、Full-text search indexes 事物 3、Data caches 数据缓存 4、Index caches 索引缓存 5、Transactions 事物 6、占用资源多 7、读写阻塞与事务隔离级别相关。
MyISAM特点:
1 不支持事务(事务时指逻辑上的一组操作,组成这个组操作的各个单元,要么全成功,要么全失败)
2表级锁定(更新时锁整个表):其锁定机制是表级索引,这虽然可以让锁定的实现成本很小但是也大大降低了其并发性能
比如:相当于有个小偷在大厦了,把整个大厦的大门都锁住了,那么其他人也无法出去了。
3读写相互阻塞,不仅会再写入的时候阻塞读取,MyISAM还会再读取的时候阻塞写入,但读本身并不会阻塞另外的读。
4只会缓存索引:MyISAM可以通过key_buffer_size缓存索引,以大大提高访问的
性能减少IO,但是这个缓存区只会缓存索引,而不会缓存数据。
[root@mysql4 mysql-mmm-2.2.1]# grep key_buffer /etc/my.cnf
key_buffer_size = 16K
5读取速度较快,占用资源相对少
6不支持外键约束,但支持全文索引
7MyISAM引擎是MySQL5.5前缺省的存储引擎
本文出自 “晴空” 博客,谢绝转载!
原文地址:http://7179867.blog.51cto.com/7169867/1656360