我的MySQL查询产生了非常慢的处理时间。我该如何加快速度?

时间:2011-08-05 10:53:51

标签: mysql database

我的查询结果很慢。这显然是不可接受的,我必须在这里做错事。

我在查询中有4个表。 tr_id指的是单个交易,其中可能包含来自几个想要去几个不同国家的人的申请。我想在一个单独的行显示每个人和每个国家/地区的信息,如:

1298 2011-08-04 2011-09-01 Joe  Bloggs Platinum_Level China
1298 2011-08-04 2011-09-01 Jane Bloggs Platinum_Level China
1298 2011-08-04 2011-09-14 Joe  Bloggs Platinum_Level Japan
1298 2011-08-04 2011-09-14 Jane Bloggs Platinum_Level Japan

我正在使用的查询是:

SELECT tr_id, tr_datecreated, tr_depart, trp_name, trp_lname, trv_processlevel,
visa_destcountry FROM transactions, people, trvisas, visas 
WHERE tr_datecreated >= "2009-09-02 00:00:00" AND tr_datecreated <= "2009-09-04 23:59:59" 
AND tr_id = trp_trid 
AND tr_id = trv_trid
AND trv_visaid = visa_code

数据库中有很多数据,我只想增加查询的复杂性,因为我添加过滤器来缩小结果范围。这将意味着访问更多的表并进行更多的比较等。我确信这不是太复杂,但可以在合理的时间内完成。

感谢任何建议。

修改

事实上,在对我的代码进行基准测试后,实际的MySQL查询需要53秒。

1 个答案:

答案 0 :(得分:2)

查看有关优化的MySQL建议:

http://dev.mysql.com/doc/refman/5.0/en/optimization.html