1. mysql> show status like ‘table%‘;
2. +-----------------------+-------+
3. | Variable_name | Value |
4. +-----------------------+-------+
5. | Table_locks_immediate | 2979 |
6. | Table_locks_waited | 0 |
1. Lock tables orders read local, order_detail read local;
2. Select sum(total) from orders;
3. Select sum(subtotal) from order_detail;
4. Unlock tables;
2.3、并发插入
Myisam也支持查询和插入同时进行的并发操作:存储引擎有一个系统变量concurrent_insert, 专门控制并发插入的行为。值为 0 1 2
concurrent_insert == 0 :不允许并发的插入
concurrent_insert == 1 :(默认值1)如果该表没有空洞(表的中间没有被删除的行),允许边读边插入。
concurrent_insert == 2 :无论有没有空洞都运行在表的末尾插入数据
2.4、锁调度
Myisam的读写操作是互斥的,读写操作是串行的。
如果一个进程请求表的读锁,同时另一个线程请求表的写锁,那么写的进程会先获得锁,就算是读的进程先到锁的等待队列,如果有写进程
那么也是写进程获得锁,因为mysql默认认为写进程比读的进程更加重要。 可以通过一些设置来调节这些级别:
三、InnoDB存储引擎
InnoDB和Myisam最大的不同就是
1、事物支持
2、行级锁
3.1、事物以及其的属性
隔离级别
|
读数据一致性
|
脏读
|
不可重复读
|
幻读
|
未提交读
|
最低级别
|
是
|
是
|
是
|
已提交读
|
语句级 |
否
|
是
|
是
|
可重复读
|
事物级 |
否
|
否
|
是
|
可序列化
|
最高级别(事物级)
|
否
|
否
|
否
|
原文:http://my.oschina.net/gyj0728/blog/505613