草庐IT

mysqlMySQL

全部标签

MySQL 数据多久刷一次盘?

前言事情是这样的,在某乎的邀请回答中看到了这个问题:-然后当时我没多想就啪一下写下来这样的答案:这个其实要通过MySQL后台线程来刷的,在BufferPool中被修改的过的Page(页)都会被标记成脏页,放到一个链表(Flush链表)里。然后MySQL通过启动后台线程,在满足条件时将Flush链表中的脏页刷入磁盘。满足的条件是:脏页的数量达到了BufferPool中页数量的10%,当然10%这个值是可变的,通过配置项innodb_max_dirty_pages_pct_lwm来配置的,其默认值为10%,并且这个值也必须小于另一个配置innodb_max_dirty_pages_pct的值(90

实战篇:如何查看mysql里面的锁

通过查询表统计信息查看information_schema库下相关事务表和锁相关信息表介绍innodb_trx存储了当前正在执行的事务信息trx_id:事务ID。trx_state:事务状态,有以下几种状态:RUNNING、LOCKWAIT、ROLLINGBACK和COMMITTING。trx_started:事务开始时间。trx_requested_lock_id:事务当前正在等待锁的标识,可以和INNODB_LOCKS表JOIN以得到更多详细信息。trx_wait_started:事务开始等待的时间。trx_mysql_thread_id:事务线程ID,可以和PROCESSLIST表JOI