我有繁重的事务处理,并想了解有关如何在当前数据库中实现锁的信息。在零预算下工作,我的选择仅限于 mysql 5.5 和 postgres 9.0。
有没有比较锁的网站?
从文献中我知道您可以拥有只读和读写锁,并且处理锁的一种好方法是阻止数据的路径。这意味着阻塞 btree 的一部分。但我找不到关于这些数据库如何工作的细节。
非常感谢。
我有繁重的事务处理,并想了解有关如何在当前数据库中实现锁的信息。在零预算下工作,我的选择仅限于 mysql 5.5 和 postgres 9.0。
有没有比较锁的网站?
从文献中我知道您可以拥有只读和读写锁,并且处理锁的一种好方法是阻止数据的路径。这意味着阻塞 btree 的一部分。但我找不到关于这些数据库如何工作的细节。
非常感谢。
这是 PostgreSQL 的概述
http://www.postgresql.org/docs/current/static/explicit-locking.html
http://www.postgresql.org/docs/current/static/locking-indexes.html
不确定“只读锁”是什么意思,但在 PostgreSQL 中,“锁定”表不被读取的唯一方法是使用 ACCESS EXCLUSIVE 模式手动锁定它,这在常规 DML 语句中不会发生。只有 DDL 语句(例如 ALTER TABLE)才能实现这一点。
检查这个:SQL Server 2008 锁定。
也许您会发现这本书很有用:Inside Microsoft SQL Server 2005: The Storage Engine。阅读“日志记录和恢复”和“锁定和并发”章节。本书中的大量信息适用于当今的许多数据库系统。这真是一本好书。
我建议您阅读有关并发控制的内容。您可以从Concurrency_control wiki开始,尤其是从“数据库事务和 ACID 规则”部分开始
如果您想比较锁,首先我会阅读有关事务中发生的问题和有关事务隔离级别的信息。