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

我的MySQL查询产生的处理时间非常慢。我如何加速它?,mysql,database,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-0

我的查询产生的结果非常慢。这显然是不可接受的,我一定是做错了什么

我在查询中有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
选择tr_id、tr_datecreated、tr_depart、trp_name、trp_lname、trv_processlevel、,
签证从交易、人员、TRVISA、签证中删除国家

其中tr_datecreated>=“2009-09-02 00:00:00”和tr_datecreated查看MySQL的优化建议:


您有哪些索引?您是否有与查询匹配的索引?您是否尝试过使用Explain命令?只要您在计划搜索的任何列上都有索引,那么性能应该就可以了。对不起,我不知道“有索引来匹配查询”是什么意思。我来看看Explain命令。tru id是事务表的索引主键。您需要在where子句中使用的列上有索引。重要的是,如果在where子句中执行强制转换etc,强制转换也应该是索引的一部分。