取数和发送数据流程-mysql45讲-打卡活动

MySQL 取数和发送数据流程是”边读边发的“,具体流程如下:

  1. 获取一行,写到 net_buffer 中(由参数 net_buffer_length 设置,默认是 16k)
  2. 重复获取行,直到 net_buffer 写满,调用网络接口发出去。
  3. 如果发送成功,就清空 net_buffer,然后继续取下一行,并写入 net_buffer。
  4. 如果发送函数返回 EAGAIN 或 WSAEWOULDBLOCK,就表示本地网络栈(socket send buffer)写满了,进入等待。直到网络栈重新可写,再继续发送。

内存命中率,可以通过执行show engine innodb status,里面Buffer pool hit rate就是当前的命中率

InnoDB Buffer Pool 的大小是由参数 innodb_buffer_pool_size 确定的,一般建议设置成可用物理内存的 60%~80%。

InnoDB 内存管理用的是最近最少使用 (Least Recently Used, LRU) 算法,是用链表来实现的,按照 5:3 的比例把整个 LRU 链表分成了 young 区域和 old 区域。图中 LRU_old 指向的就是 old 区域的第一个位置,是整个链表的 5/8 处

上一篇:withEnv(['JENKINS_NODE_COOKIE=dontkillme']) 解决杀掉了所有子进程问题


下一篇:MySQL select into临时表