回答
A
row
对于发生重大数据修改的大型表格,表级锁定效果更好。这可以让系统与桌面上的单个锁进行竞争,而不必处理巨大的锁(每行一个锁)。
RDBMS在内部自动升级锁定级别。
我认为你的意思是“表锁越好.....” – SQLMenace 2010-08-11 20:47:22
我认为你的意思是“一排锁更好......”:P – 2010-08-11 20:49:03
*(羞怯的笑容)*是的,我的意思是表.. – 2010-08-11 20:58:22
一般来说,如果你需要锁定了大量的数据,那么1锁定在一个大表比行级锁或页锁一大堆
行锁定需要比表或页级锁定更多的内存。
有权获得更多的锁与行锁定,这花费更多的资源
从http://www.devshed.com/c/a/MySQL/MySQL-Optimization-part-2/
优势行级锁定:
- 更少的锁访问多个线程中的不同行时发生冲突。
- 回滚更改较少。
- 可以长时间锁定单行。
缺点行级锁定:
- 花费的时间比页级或表级锁更多的内存。
- 由于您必须获取更多锁,所以在大部分表上使用时比页级别或表级锁定要慢。
- 如果您经常对大部分数据执行GROUP BY操作,或者您经常必须扫描整个表,那么肯定比其他锁更糟糕。
- 对于更高级别的锁定,您还可以更轻松地支持不同类型的锁定来调整应用程序,因为锁定开销低于行级锁定。
表锁优于在下列情况下页级或行级锁:
- 为表大多数陈述读取。
- 阅读和严格的密钥,在这里你更新或删除可以用一个键读取中获取一个行更新:
UPDATE tbl_name SET column=value WHERE unique_key_col=key_value;
DELETE FROM tbl_name WHERE unique_key_col=key_value;
- 选择具有并行的INSERT语句,极少UPDATE和DELETE语句结合。
- 许多扫描或GROUP BY操作在整个表上没有任何作家。
表锁定使许多会话在同一时间
从表中读取要达到很高的锁定速度,MySQL使用表锁定
“我会假设行级锁定更好,因为“[你锁定的数据少]。
在此页面中,首先“更好”的定义很差。看起来好的意思是“更快”。
由于争用锁,行级锁定不能(通常)更快。锁定大型结果集的每一行意味着与另一个大型结果集查询和回滚发生冲突的真实可能性。
- 1. 表级锁定保证是什么?
- 2. 在MySQL插入过程中,表级锁定会锁定什么?
- 3. 为什么它更好地锁定(objLock),比锁(本)
- 4. 我需要行级锁定
- 5. Django,innodb和行级锁定
- 6. Nhibernate行级别锁定
- 7. mariadb行级读取锁定
- 8. 将一个表锁锁定行锁定
- 9. 优化程序将行级锁升级到宏级中的表级锁
- 10. Grails锁定级别
- 11. 等待表级锁
- 12. Java级别锁定与对象级别锁定
- 13. 大INNODB表锁定
- 14. MySQL的 - 表锁定VS行锁定
- 15. 级别锁定和解锁统一
- 16. 是什么让SQL Server决定使用哪个锁定级别(行,页面或表锁?)
- 17. InnoDB行级锁定性能 - 多少行?
- 18. 为什么InterLocked比锁定慢?
- 19. 休眠中的行级锁定
- 20. 对象级别和类级别锁定
- 21. MySQL写锁定优先级
- 22. MySQL锁定优先级
- 23. Oracle死锁没有显式锁定和读提交隔离级别,为什么?
- 24. C++ Boost ::线程可升级互斥锁“尝试升级锁定”?
- 25. SplitButton锁定 - 无法解锁。为什么?
- 26. mySQL - 使用mysqli应用行级锁定
- 27. 大型程序中的隔离级别或锁定
- 28. 等待MySQL表中的表级锁
- 29. 锁定在ADO.NET中的表锁定
- 30. 为什么锁定错误?
我明白了。因此,如果它更像“对于大型结果集,表锁定通常比行锁定更好”或许会更好。 – 2010-08-11 21:32:14