MySQL缓冲池
2021-10-12 16:51:25   0  举报             
     
         
 MySQL缓冲池的内部结构
    作者其他创作
 大纲/内容
 一行数据
  描述数据
  MySQL
  结束节点
    数据页缓存哈希表表空间号+数据页号 = 缓存页地址表空间号+数据页号 = 缓存页地址表空间号+数据页号 = 缓存页地址……
  Buffer Pool中的描述数据大概相当于缓存页大小的5%左右,每个描述数据大概是800个字节左右。假设你设置的buffer pool大小是128MB,实际上会超出一些,可能130多MB,因为还要存放每个缓存页的描述数据。
  描述信息,用来描述这个数据页(缓存页),包含这个数据页所属的表空间、数据页的编号、这个缓存页在Buffer Pool中的地址以及别的东西。
  Buffer Pool 默认128MB。如果数据库是16核32GB,可以分配2GB。[server]innodb_buffer_pool_size = 2147483648
  包含很多数据页
  缓存页
  Buffer Pool(128MB)
  Buffer Pool中的描述数据块的free_pre和free_next两个指针,串成一个free双向链表。对于free链表,只有一个\"基础节点\"是不属于Buffer Pool的,是40字节大小的一个节点,存放了free链表的头节点地址,尾节点地址,还有free链表里当前有多少个节点。
  基础节点count=n
  开始节点
  磁盘文件
  加载数据页到Buffer Pool里去
  数据页(16KB)
   
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
 