经检查发现是内存的临时表空间似乎没清除,重启mysql就好了。
windows nt环境。
有没有好的解决办法呢?
实际上就是物理内存占满了,数据库需要把内存换出到磁盘的虚拟内存上,加上访问量一大,频繁换入换出查询就会变得很慢很慢。
如果无法从程序结构上解决问题,那么只有增加内存了,建议把mysql的服务器换成linux的,在对buffer的管理上,linux还是有先进性的。
最后提一下,临时表这个东西除了在生成报表的时候有点用外,并不建议在日常生产中经常使用,这完全是个不良的习惯。
5 回答3.3k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
5 回答1.4k 阅读
2 回答1.8k 阅读
3 回答2k 阅读
1 回答3.6k 阅读
优化查询sql吧,或者把buffer配小一点?
建议先从sql优化开始,尽量使用不产生临时表的查询