表级锁定可以保证什么?

| 我有一个事务,该事务在数据库上先读一次,然后写一次。如果我选择MyIsam作为MySQL中的数据库引擎,那么MyIsam的表级锁定机制是否可以保证我一旦事务开始读取,该表就被所有其他事务锁定了? 我的意思是,如果有两个或多个事务,则希望按此顺序进行:
R W R W R W R W R W... 
但是,如果按照以下顺序进行操作:
R R R R W W W W....
我的数据库进入不一致状态。这是此特定表上的特定要求。制作桌子MYIsam是否足够?如果不是,我还需要做什么?表级锁定仅用于写操作吗?     
已邀请:
        MySQL文档指出: LOCK TABLES不是事务安全的 并隐式提交任何活动 尝试锁定之前的交易 桌子。 开始交易(例如, 与START TRANSACTION一起使用) 提交任何当前事务并 释放现有的锁。 但是这些规定适用于事务引擎(InnoDB)。 MyISAM不支持InnoDB样式的事务。 MyISAM具有读锁(这将阻止从任何会话进行写操作)和写锁(这将防止从其他会话进行写和写操作)。多个会话可以获取读锁定,但是如果一个会话获得了写锁定,则在写入锁定到位时,其他任何会话都无法读取,锁定或写入表。 我鼓励您查阅有关该主题的文档,以及我链接到的页面顶部的链接到这些页面的文档。抱歉,该链接指向特定的版本号;我不知道链接到MySQL文档的版本无关的方法。 在我看来,您需要获取写锁定,并在锁定处于活动状态时进行读/写,然后释放它,然后继续进行下一个操作。如果首先要获得读锁,请先进行读取,然后释放并获得写锁,则可以公开竞争条件。     

要回复问题请先登录注册