Mysql 比较数据库及其锁

Mysql 比较数据库及其锁,mysql,database,postgresql,b-tree,locks,Mysql,Database,Postgresql,B Tree,Locks,我有大量的事务处理工作要做,我想了解一下如何在当前数据库中实现锁。在零预算的情况下,我的选择仅限于mysql 5.5和postgres 9.0 有没有比较锁的地方 从文献中我知道可以有只读锁和读写锁,处理锁的一个好方法是阻塞数据路径。这意味着阻止部分btree。但我找不到关于这些数据库如何工作的细节 非常感谢。也许你会发现这本书很有用:Microsoft SQL Server 2005内部:存储引擎。阅读“日志记录和恢复”和“锁定和并发”章节。本书中的许多信息应用于当今的许多数据库系统。这真是本

我有大量的事务处理工作要做,我想了解一下如何在当前数据库中实现锁。在零预算的情况下,我的选择仅限于mysql 5.5和postgres 9.0

有没有比较锁的地方

从文献中我知道可以有只读锁和读写锁,处理锁的一个好方法是阻塞数据路径。这意味着阻止部分btree。但我找不到关于这些数据库如何工作的细节


非常感谢。

也许你会发现这本书很有用:Microsoft SQL Server 2005内部:存储引擎。阅读“日志记录和恢复”和“锁定和并发”章节。本书中的许多信息应用于当今的许多数据库系统。这真是本好书

我建议您阅读有关并发控制的内容。您可以从“数据库事务和ACID规则”部分开始


如果您想比较锁,首先我会阅读事务中出现的问题以及事务隔离级别。

这里是PostgreSQL的概述




不确定“只读锁”是什么意思,但在PostgreSQL中,要“锁定”一个正在读取的表,唯一的方法是使用ACCESS EXCLUSIVE模式手动锁定它,这与常规DML语句不同。只有DDL语句(如ALTER table)将实现这一点。

检查此项:

非常感谢您的提示。我已经掌握了这方面的知识(或者如果没有,我旁边就有一本awesom书籍)但我找不到这两个数据库的任何细节。我只需要一个空白列表,列出支持哪种锁,不需要解释……您所说的有点含糊不清,因为根据您的第一个链接
lock table
可以“保证持有人是以任何方式访问该表的唯一交易“-我猜你的意思是没有行级锁可以阻止读取?@JackPDouglas:你说得对。我指的是行级锁。以下是关于innodb表锁定的MySQL手册:请注意,myisam如何锁定它在很大程度上是无趣的,因为它使用了“一个大锁”方法。对于PostgreSQL和Innodb锁定,事务隔离级别很重要,这就提出了一个问题:您对锁定感兴趣的是什么?性能、隔离、谓词锁定?