行锁定比表或页级锁定需要更多内存。
必须通过行锁定获取更多锁,这会消耗更多资源
来自 http://www.devshed.com/c/a/MySQL/MySQL-Optimization-part-2/
行级锁定的优点:
行级锁定的缺点:
在以下情况下,表锁优于页级锁或行级锁:
UPDATE tbl_name SET column=value WHERE unique_key_col=key_value;
DELETE FROM tbl_name WHERE unique_key_col=key_value;
A row 表级锁更适合发生重大数据修改的大型表。这让系统可以处理表上的单个锁,而不必处理无数的锁(每一行一个锁)。
RDBMS 在内部自动升级锁定级别。
表锁定允许多个会话同时从表中读取
为了实现非常高的锁定速度,MySQL 使用表锁定
“我认为行级锁定更好,因为”[您锁定的数据更少]。
本页对第一个“更好”的定义很差。看来更好意味着“更快”。
由于锁的争用,行级锁定(通常)不会更快。锁定大型结果集的每一行意味着与另一个大型结果集查询发生冲突并回滚的可能性非常大。
一般来说,如果您需要锁定大量数据,那么大表上的 1 个锁比一大堆行级锁或页锁便宜
我不明白为什么表级锁在这个语句上更优越
严格键上的读取和更新,您可以在其中更新或删除可以通过单个键读取获取的行: UPDATE tbl_name SET column=value WHERE unique_key_col=key_value;从 tbl_name 删除,其中 unique_key_col=key_value;
行级锁是否应该更高效,因为它只会使用 unique_key_col 锁定单行?