mysql 更新时会影响查询吗

mysql 更新时会影响查询吗,第1张

毫无疑问的回答你,会的。mysql 更新会影响查询,两个 *** 作之间处于不同事务,根据不同的事务隔离级别不同,影响的作用不同。查询与更新 作用于同一个表的时候,首先是在serializable 隔离级别下,更新时会阻塞 查询,直到更新完成,才开始进行插询 *** 作。其次假如是Repeatable read level 时,查询会有幻读现象,如果是Read committed 会有不可重复读现象,如果是Read uncomitted h隔离级别,则会有脏读的现象。假如更新与 查询作用的没有相同的一个表,不考虑事务隔离级别的影响,这种情况下,影响几乎为 0,考虑在于 服务器cpu、磁盘、内存的占用影响。

通过下面的查询, 来查询当前数据库, 有哪些事务,都锁定哪些资源。

SELECT

trx_id AS  `事务ID`,

trx_state AS `事务状态`,

trx_requested_lock_id  AS  `事务需要等待的资源`,

trx_wait_started AS  `事务开始等待时间`,

trx_tables_in_use AS `事务使用表`,

trx_tables_locked AS `事务拥有锁`,

trx_rows_locked  AS `事务锁定行`,

trx_rows_modified  AS `事务更改行`

FROM

information_schema.innodb_trx  SELECT

lock_id AS `锁ID`,

lock_trx_id  AS `拥有锁的事务ID`,

lock_mode  AS `锁模式 `,

lock_type  AS `锁类型`,

lock_table  AS `被锁的表`,

lock_index  AS `被锁的索引`,

lock_space  AS `被锁的表空间号`,

lock_page  AS `被锁的页号`,

lock_rec  AS `被锁的记录号`,

lock_data  AS `被锁的数据`

FROM

information_schema.innodb_locks

SELECT

  requesting_trx_id   AS  `请求锁的事务ID`,

  requested_lock_id   AS  `请求锁的锁ID`,

  blocking_trx_id     AS  `当前拥有锁的事务ID`,

  blocking_lock_id    AS  `当前拥有锁的锁ID`

FROM

  innodb_lock_waits


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8641860.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存