摘要: 我的服务器数据库内存还有4个G,里面有8个G的表,现在,我要让我的客户机远程连接服务器后对数据库进行一次全表扫描,请问,我的服务器会不会因为内存被8个G的表塞得溢出而崩溃? 面试关如实问到 在我阅读这篇文章后,我会这么跟面试官说: 第一,内存不会打满,除非socket send buffer设置超过4G才有可能 第二,之所以不会,是因为mysql采用一边帮你查询,一边帮你把查询数据发给客户端的模式 但如果客户端接受查询数据特别慢,那数据就会滞留在服务器上,直到达到滞留上限(上限就是socket send buffer的值),这会极大影响服务器性能 你怎么确定服务端的数据是否滞留呢? 面试官问: 答案 show processlist; 可以查看线程状态,如果处于:“sending to client”,那就说明服务端处于滞留状态 阅读全文
posted @ 2024-11-03 19:22 guixiang 阅读(25) 评论(0) 推荐(0) 编辑