今天给大家介绍的是关于MySQL中的InnoDB锁,什么是InnoDB锁?InnoDB,是MySQL的数据库引擎之一,为MySQLAB发布binary的标准之一。InnoDB由InnobaseOy公司所开发,2006年五月时由甲骨文公司并购。与传统的ISAM与MyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能,类似于PostgreSQL。今天给大家介绍的是InnoDB的争夺情况。
20.3.2 获取InnoDB行锁争用情况
《深入浅出MySQL——数据库开发、优化与管理维护》从数据库的基础、开发、优化、管理4方面对MySQL进行了详细的介绍,其中每一部分都独立成篇,每一篇又包括多个章节。本书面向实用,内容覆盖广泛,讲解由浅入深,适合于各个层次的读者。本文介绍了InnoDB锁。
可以通过检查InnoDB_row_lock状态变量来分析系统上的行锁的争夺情况:
如果发现锁争用比较严重,如InnoDB_row_lock_waits和InnoDB_row_lock_time_avg的值比较高,还可以通过设置InnoDBMonitors来进一步观察发生锁冲突的表、数据行等,并分析锁争用的原因。
具体方法如下:
然后就可以用下面的语句来进行查看:
监视器可以通过发出下列语句来停止查看:
mysql>DROPTABLEinnodb_monitor;
QueryOK,0rowsaffected(0.05sec)
设置监视器后,在SHOWINNODBSTATUS的显示内容中,会有详细的当前锁等待的信息,包括表名、锁类型、锁定记录的情况等,便于进行进一步的分析和问题的确定。打开监视器以后,默认情况下每15秒会向日志中记录监控的内容,如果长时间打开会导致.err文件变得非常的巨大,所以用户在确认问题原因之后,要记得删除监控表以关闭监视器,或者通过使用“--console”选项来启动服务器以关闭写日志文件。
¥48.00¥180.00
¥199.00
¥29.90
¥199.00
¥48.00¥180.00
¥798.00