mysql - 数据库查询中的锁

标签 mysql database operating-system rdbms

当我们通过sql查询mysql时,是否会隐式应用锁? 当我从数据库读取、从数据库写入时,应用什么类型的锁?这种锁在用于实时应用程序的数据库中如何发挥作用?

最佳答案

问:当我们通过sql查询mysql时,是否会隐式应用锁?

答:是的。

问:当我从数据库读取、从数据库写入时,会应用什么类型的锁?

答:这取决于存储引擎(MyISAM、InnoDB 等)

MyISAM 采用“表级”锁。它使用“共享”锁进行读取,使用“独占”锁进行写入。

InnoDB 同时使用“表级”锁和“行级”锁,并受 session 隔离级别(REPEATABLE-READ、READ-COMMITTED 等)的影响

对 MySQL 锁定的完整讨论对于 StackOverflow 上的答案来说太深入了。

问:这种锁在用于实时应用程序的数据库中如何发挥作用?

答:锁机制的功能相同,存储引擎并没有真正区分“实时”应用程序或其他应用程序。 InnoDB 锁定没有特定的“实时”设置。

我们的应用程序需求将影响我们的数据库设计和实现决策。

关于mysql - 数据库查询中的锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47515506/

相关文章:

php - 多张照片上传php mysql

android - 将android应用程序连接到xampp

SQL 服务器 : does NEWID() always gives a unique ID?

php - 在 Laravel 5 中,我们在哪里编写访问数据库的函数?

mysql - 在 C 中追加或创建文件时如何请求连续 block (非碎片)?

MySql 同一查询的不同执行路径

mysql - 恢复选项

database - PostgreSQL 8.3.11 已锁定;孤立的 pg_toast 数据库对象恢复

assembly - A20线在保护模式下起什么作用?

c - 如何知道后台运行的进程是否完成