热门

最新

红包

立Flag

投票

同城

我的

发布
xiamen_buyu
瑾析编程
5 年前
truexiamen_buyu

# 20200916-查询大量数据,为什么MySQL服务端内存不会溢出

MySQL是“边读边发”,也就是说MySQL服务端并不需要保存一个完整的结果集合。步骤如下:
1.按顺序读取查询到的记录,每读取一行就写入net_buffer(net_buffer由参数net_buffer_length控制大小,默认是16K)
2.当没有结果数据或者net_buffer被写满,则将net_buffer数据写入本地网络栈(socket send buffer),然后发送
3.如果发送成功,就清空net_buffer,否则阻塞

由此可知一个查询在发送过程中,占用的MySQL内部的内存最大就是net_buffer_length 这么大。

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
今日夜宵
立即登录