mysql数据库 程序做统计,运行很慢求帮助。

MySql 码拜 9年前 (2016-02-14) 1006次浏览
一个文章数据表,要根据 作者 来进行统计,文章表的作者字段不是单一作者,可能有好几个作者用json字符串保存。作者约有300多人有单独一个表。  读取作者表里面的记录,然后循环的用每个作者的id去查询文章表里面的作者字段,来统计作者的发布数。
原先文章表里面大致100多条记录,统计完300多个作者大约也就需要10秒不到。今天客户要求把老的文章导入,老文章大致17000多条。再运行统计页面的时候,页面要执行80来秒。本人觉得太慢了,就决定用单独的一个表来存放历史文章。然后把文章表里面导入的记录删除掉,删除时表的最大id已经30000多了。删除完也就剩下100条记录,但是查询却依然还要50来秒,之前100度篇的时候也只要10来秒。有高手知道,这是什么原因吗?  怎么样解决
解决方案

20

这么点数据,还用10秒?也是够慢的。可能跟json格式有关。
1、整理下碎片试试,optimize table t;
2、看能否存在有效索引
另外,建议关系型数据库最好不使用json,多个作者的以多条记录的形式存在

20

另外,把执行计划打出来看看:
explain select 。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql数据库 程序做统计,运行很慢求帮助。
喜欢 (0)
[1034331897@qq.com]
分享 (0)