这是一个谦虚的问题,本着增加我的知识的精神提出的;请温柔地回应。
作为一名长期的应用程序开发人员,我在某种程度上知道事务是什么(我一直在使用它们)。暂且不谈事务隔离级别,在较高级别上,事务允许完全完成或根本不完成工作块,并允许与其他数据库修改活动进行一定程度的隔离。
我还知道(在各种数据库中)锁是什么,或者至少知道一个锁的行为(如果我以某种方式明确地锁定一个表,那么没有其他进程或线程可以更新有关该表的任何内容)。
我现在最明显的不明确的是:在各种数据库中,当我明确地锁定一行或一台,我在用人所使用的数据库的交易设施在幕后进行交易正常工作完全一样的结构?
也就是说,我突然想到,为了使事务具有原子性和隔离性,它必须进行一些锁定。这个事务启动的、事务隐藏的锁定是否与各种数据库让我通过诸如SELECT FOR UPDATE
或显式LOCK
命令之类的结构访问的锁定类型相同?还是这两个概念完全不同?
再次,我为这个问题的幼稚道歉;我很高兴被指出更基础的来源。