WEB开发网
开发学院数据库MySQL 轻松掌握MySQL数据库锁机制的相关原理 阅读

轻松掌握MySQL数据库锁机制的相关原理

 2008-09-03 11:08:56 来源:WEB开发网   
核心提示: 如果insert 语句不冲突,可以自由为MyISAM 表混合并行的insert 和select 语句而不需要锁定,轻松掌握MySQL数据库锁机制的相关原理(2), InnoDB 使用行锁定,BDB 使用页锁定,这明数据库或表支持数据依赖的不同视图,取决于访问何时开始,对于这两种存储引擎,都

如果insert 语句不冲突,可以自由为MyISAM 表混合并行的insert 和select 语句而不需要锁定。

InnoDB 使用行锁定,BDB 使用页锁定。对于这两种存储引擎,都可能存在死锁。这是因为,在SQL语句处理期间,InnoDB 自动获得行锁定,BDB 获得页锁定,而不是在事务启动时获得。

行级锁定的优点:

· 当在许多线程中访问不同的行时只存在少量锁定冲突。

· 回滚时只有少量的更改。

· 可以长时间锁定单一的行。

行级锁定的缺点:

· 比页级或表级锁定占用更多的内存。

· 当在表的大部分中使用时,比页级或表级锁定速度慢,因为你必须获取更多的锁。

· 如果你在大部分数据上经常进行 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 操作,没有任何写操作。

不同于行级或页级锁定的选项:

· 版本(例如,为并行的插入在MySQL中使用的技术),其中可以一个写操作,同时有许多读取操作。这明数据库或表支持数据依赖的不同视图,取决于访问何时开始。其它共同的术语是“时间跟踪”、“写复制”或者“按需复制”。

上一页  1 2 3 4  下一页

Tags:轻松 掌握 MySQL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接