我的查询结果很慢。这显然是不可接受的,我必须在这里做错事。
我在查询中有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秒。