数据库查询中的锁
Locks in database queries
当我们查询 mysql 到 sql 时是否隐式应用了锁?
当我从数据库读取,从数据库写入时应用什么类型的锁?这种锁在用于实时应用程序的数据库中如何发挥作用?
问:当我们查询 mysql 到 sql 时,是否隐式应用了锁?
答:是的。
问:当我从数据库读取,从数据库写入时应用什么类型的锁?
答:这取决于存储引擎(MyISAM、InnoDB 等)
MyISAM 使用 "table level" 锁。它使用 "share" 锁进行读取,使用 "exclusive" 锁进行写入。
InnoDB 同时使用 "table level" 和 "row level" 锁,并受会话隔离级别(REPEATABLE-READ、READ-COMMITTED 等)的影响
关于 MySQL 锁定的完整讨论对于 Whosebug 上的答案来说太深入了。
问:这个锁在用于实时应用程序的数据库中如何发挥作用?
A:锁机制的功能相同,存储引擎并没有真正区分应用程序是 "real time" 还是其他。 InnoDB 锁定没有特定的 "real time" 设置。
我们的应用程序需求将影响我们的数据库设计和实施决策。
当我们查询 mysql 到 sql 时是否隐式应用了锁? 当我从数据库读取,从数据库写入时应用什么类型的锁?这种锁在用于实时应用程序的数据库中如何发挥作用?
问:当我们查询 mysql 到 sql 时,是否隐式应用了锁?
答:是的。
问:当我从数据库读取,从数据库写入时应用什么类型的锁?
答:这取决于存储引擎(MyISAM、InnoDB 等)
MyISAM 使用 "table level" 锁。它使用 "share" 锁进行读取,使用 "exclusive" 锁进行写入。
InnoDB 同时使用 "table level" 和 "row level" 锁,并受会话隔离级别(REPEATABLE-READ、READ-COMMITTED 等)的影响
关于 MySQL 锁定的完整讨论对于 Whosebug 上的答案来说太深入了。
问:这个锁在用于实时应用程序的数据库中如何发挥作用?
A:锁机制的功能相同,存储引擎并没有真正区分应用程序是 "real time" 还是其他。 InnoDB 锁定没有特定的 "real time" 设置。
我们的应用程序需求将影响我们的数据库设计和实施决策。