暂无图片
mysql中如何查看当前的脏页比例和脏页总大小(多少mb),5.7版本
我来答
分享
暂无图片 匿名用户
mysql中如何查看当前的脏页比例和脏页总大小(多少mb),5.7版本

mysql中如何查看当前的脏页比例和脏页总大小(多少mb),5.7版本

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
lianR

在MySQL中,你可以使用以下SQL查询来查看当前的脏页比例和脏页总大小:

```sql
SELECT
     ROUND((Pages_dirty  /  Total_pages)  *  100,  2)  AS  'Dirty  Pages  Ratio',
     ROUND((Pages_dirty  *  16  /  1024),  2)  AS  'Dirty  Pages  Size  in  MB'
FROM
     performance_schema.global_status
WHERE
     Variable_name  IN  ('Innodb_buffer_pool_pages_dirty',  'Innodb_buffer_pool_pages_total');
```

这个查询会返回两个结果:

-  `Dirty  Pages  Ratio`:当前脏页的比例(以百分比表示)
-  `Dirty  Pages  Size  in  MB`:当前脏页的总大小(以MB表示)

请注意,这个查询仅适用于MySQL  5.7和更高版本,因为它使用了`performance_schema`数据库,这个数据库在MySQL  5.7中才被引入。

暂无图片 评论
暂无图片 有用 1
CHEN Y.F.

查看脏页比例

SELECT
ROUND((`innodb_buffer_pool_pages_dirty` / `innodb_buffer_pool_pages_total`) * 100, 2) AS dirty_pages_ratio
FROM
information_schema.innodb_buffer_pool_stats;

查看脏页总大小

SELECT
CONCAT(ROUND(SUM(`data_length` + `index_length`) / 1024 / 1024, 2), ' MB') AS dirty_pages_size
FROM
information_schema.tables
WHERE
`engine` = 'InnoDB';


这将返回所有InnoDB表的数据和索引的总大小,以MB为单位,这是脏页的总大小。

请注意,在MySQL中,脏页是指已经被修改但尚未写回磁盘的缓冲页。这些页包含了已经被更新但还未持久化到磁盘的数据。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏