mysql> LOCK TABLES real_table WRITE, insert_table WRITE; mysql> INSERT INTO real_table SELECT * FROM insert_table; mysql> TRUNCATE TABLE insert_table; mysql> UNLOCK TABLES; |
InnoDB 使用行级锁,BDB 使用页级锁。对于 InnoDB 和 BDB 存储引擎来说,是可能产生死锁的。这是因为 InnoDB 会自动捕获行锁,BDB 会在执行 SQL 语句时捕获页锁的,而不是在事务的开始就这么做。
行级锁的优点有:
- 在很多线程请求不同记录时减少冲突锁。
- 事务回滚时减少改变数据。
- 使长时间对单独的一行记录加锁成为可能。
行级锁的缺点有:
- 比页级锁和表级锁消耗更多的内存。
- 当在大量表中使用时,比页级锁和表级锁更慢,因为他需要请求更多的所资源。
- 当需要频繁对大部分数据做 GROUP BY 操作或者需要频繁扫描整个表时,就明显的比其它锁更糟糕。
- 使用更高层的锁的话,就能更方便的支持各种不同的类型应用程序,因为这种锁的开销比行级锁小多了。
表级锁在下列几种情况下比页级锁和行级锁更优越:
- 很多操作都是读表。
- 在严格条件的索引上读取和更新,当更新或者删除可以用单独的索引来读取得到时:
UPDATE tbl_name SET column=value WHERE unique_key_col=key_value; DELETE FROM tbl_name WHERE unique_key_col=key_value; |
SELECT 和 INSERT 语句并发的执行,但是只有很少的 UPDATE 和 DELETE 语句。
- 很多的扫描表和对全表的 GROUP BY 操作,但是没有任何写表。
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Win XP下全新安装Apache2,PHP5,MYSQL5,Ze (162次浏览)
- Struts1.2实现MySQL数据库分页 (118次浏览)
- XP下安装Apache2 PHP5 MYSQL5 Zend (80次浏览)
- mysql和Oracle数据库的一些异同。 (45次浏览)
- WIN2000/XP下配置apache2.0.52+php5.0.2+mysq (34次浏览)
- DBA的利器:企业监控器简化MySQL管理 (22次浏览)
- 轻松掌握MySQL数据库锁机制的相关原理 (21次浏览)
- MySQL数据库中如何解决分组统计的问题 (18次浏览)
- Sun MySQL全球巡展:坚持承诺 开放依然 (14次浏览)
- MySQL与Sun结合:能否赢得数据库一片天? (14次浏览)



