mysql 查询很慢,怎么回事。
SELECT title.id,title.title,title.hit,title.rep,title.redate FROM bbsmenu menu,bbstitle title WHERE title.user_id=? OR (menu.user_id=? AND menu.pid=title.id) GROUP BY title.id LIMIT 0,15
关于两张表的说明
bbstitle 表有38万的数据,字段id、user_id已经建立索引。
bbsmenu 表有几百条数据。字段user_id已经建立索引。
问题是:
查询异常的慢,而且会影响到其他操作数据库的功能。
关于两张表的说明
bbstitle 表有38万的数据,字段id、user_id已经建立索引。
bbsmenu 表有几百条数据。字段user_id已经建立索引。
问题是:
查询异常的慢,而且会影响到其他操作数据库的功能。
作者: lzj0470 发布时间: 2011-06-04
SELECT title.id,title.title,title.hit,title.rep,title.redate FROM bbsmenu menu,bbstitle title WHERE title.user_id=? GROUP BY title.id LIMIT 0,15
刚才测试了一个这个语句,还是发现很慢。之后,就把GROUP BY title.id 去掉,发现很快就查询出来。查询在0.0N秒。但是,如果不加GROUP BY title.id,那么就有很多重复的数据出来。
如果仅仅是查询bbstitle,那就不需要GROUP BY title.id啦。可是,还需要查询这个表bbsmenu。
有考虑过把两张表拆分来查询,但是,还有一点,在查询两张表之后,结果集需要按时间排序。想来想去,
好像还是要添加GROUP BY title.id。
刚才测试了一个这个语句,还是发现很慢。之后,就把GROUP BY title.id 去掉,发现很快就查询出来。查询在0.0N秒。但是,如果不加GROUP BY title.id,那么就有很多重复的数据出来。
如果仅仅是查询bbstitle,那就不需要GROUP BY title.id啦。可是,还需要查询这个表bbsmenu。
有考虑过把两张表拆分来查询,但是,还有一点,在查询两张表之后,结果集需要按时间排序。想来想去,
好像还是要添加GROUP BY title.id。
作者: lzj0470 发布时间: 2011-06-04