GreatSQL社区

搜索

[已解决] 请问两个表统计BUF POOL大小不一样?

667 2 2023-7-26 09:48
information_schema.innodb_buffer_pool_stats 和 information_schema.innodb_buffer_page统计大小不一样
状态池中用BUF_MB对比
  1. select
  2. sum(pool_size)*16/1024 as POOL_MB,
  3. sum(free_buffers)*16/1024 as FREE_MB,
  4. sum(database_pages)*16/1024 as BUF_MB,
  5. sum(old_database_pages)*16/1024 as OLD_LIST_MB,
  6. sum(modified_database_pages)*16/1024 as FLUSH_MB ,
  7. (sum(database_pages)-sum(old_database_pages)) *16/1024 as NEW_LIST_MB
  8. from information_schema.innodb_buffer_pool_stats;
复制代码


据说如果页是16K 那么PAGE 是每一行就是16K
  1. select SUM(PAGE_NUMBER) AS PAGE_NUM,SUM(NUMBER_RECORDS) AS CACHE_RECORDS,ROUND(count(*)*16/1204 ,2) AS MEM_SIZE_MB
  2. from information_schema.innodb_buffer_page;
复制代码

9088 和 7838 少了1025MB   是我统计错了, 还是BUF_POOL和BUF_PAGE是有差异?

全部回复(2)
KAiTO 2023-7-26 14:23:30
一点见解:

information_schema.innodb_buffer_pool_stats[color=var(--tw-prose-code)][size=0.875em]information_schema.innodb_buffer_page
的确会显示不同的信息,因为它们描述的是不同的方面。两者在概念和实际数据存储方面都有差异。
innodb_buffer_pool_stats
这个表表示的是InnoDB缓冲池的总体统计信息,包括总的缓冲池大小、使用情况等。
innodb_buffer_page
表显示的是缓冲池中每个页面的详细信息,包括页面的类型、表空间ID、页面号、页面大小等。
当我们使用information_schema.innodb_buffer_pool_stats
表的database_pages字段计算使用的缓冲池大小时,我们得到的是InnoDB缓冲池已经分配给各种页面(包括索引页、undo页、数据页、系统页等)的总量。
而在information_schema.innodb_buffer_page
表中,我们可能只统计了特定类型的页面(如数据页或索引页),或者在计算时未能包括所有已使用的页面,这可能会导致计算结果的不同。
此外,这两个表的数据更新频率可能不同。
在某些情况下,information_schema.innodb_buffer_pool_stats
表可能会比information_schema.innodb_buffer_page表
更新得更频繁,因此在计算时可能会出现偏差。
-------------------------
另:您第二个查询PAGE_NUMBER代表的是页码,不应该被加总,如果你要统计buffer pool的使用情况,你应该计算记录条数。即,使用COUNT(*)代替SUM(PAGE_NUMBER)

innerDBA 2023-7-26 14:45:43
KAiTO 发表于 2023-7-26 14:23
一点见解:

information_schema.innodb_buffer_pool_stats和information_schema.innodb_buffer_page

请问下 你的意思是说 此表 而在information_schema.innodb_buffer_page
可能只统计了 数据页和索引页 对吗?
InnerCodeDBA
innerDBA

12

主题

0

博客

61

贡献

注册会员

Rank: 2

积分
92

助人为乐(铜)勤学好问(铜)

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-11-21 23:56 , Processed in 0.018714 second(s), 12 queries , Redis On.
快速回复 返回顶部 返回列表