mysql流式查询关闭缓慢,是不是bug?

weixin_38066019 2017-10-20 11:42:54
查看类RowDataDynamic.java中close方法中有以下代码:   // drain the rest of the records.             while (next() != null) {                 hadMore = true;                 howMuchMore++;                 if (howMuchMore % 100 == 0) {                     Thread.yield();                 }             }   说明mysql关闭时, 还要循环把流读完,如果大数据量的情况下,关闭就要等很久,请问mysql为什么如此设计?该如何关闭流查询呢?
...全文
139 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38073436 2017-10-23
  • 打赏
  • 举报
回复
Thread.yield只是把线程变为就绪状态,大数据量情况下,游标估计还没跑完,所以没有释放掉数据库资源,自然不会关闭。运气好的话,该线程会马上被CPU拿出来继续执行,运气不好,那就等待CPU临幸,mysql资源继续持有。这和mysql设计无关。

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧