MySQL更新查询需要更多的时间来更新表

MySQL更新查询需要更多的时间来更新表,mysql,sql,performance,query-optimization,Mysql,Sql,Performance,Query Optimization,我编写了两个mysql查询 第一个: SELECT I.Status FROM Test_chq_out_more100 O, chqinformore100 I WHERE I.ACC_No = O.ACC_No AND I.Chq_No = O.Begin_Chq_no; 第二个: SELECT I.Status FROM Test_chq_out_more100 O, chqinformore100 I WHERE I.ACC_No = O.ACC_No AND I.Chq_No =

我编写了两个mysql查询

第一个:

SELECT I.Status FROM Test_chq_out_more100 O, chqinformore100 I
WHERE I.ACC_No = O.ACC_No  AND I.Chq_No = O.Begin_Chq_no;
第二个:

SELECT I.Status FROM Test_chq_out_more100 O, chqinformore100 I
WHERE I.ACC_No = O.ACC_No  AND I.Chq_No = (O.Begin_Chq_no + 1);
第一次查询需要05秒才能得到答案,而第二次查询需要1165秒才能返回结果。如何优化第二次查询以在10-15秒内得到结果

chqinformore100表中有250万条记录,Test\u chq\u out\u more100表中有11000条记录。

这里是第二个查询,“修复”以使用正确的
连接语法(不应影响查询计划):

可以通过读取
O
表并在
I
表中查找值来优化此查询。因此,索引
Test\u chq\u out\u more100(ACC\u No,chq\u No)
。但是,由于添加了1,它无法充分利用
chqinformore100(ACC\u No,Begin\u Chq\u No)
上的索引。因此,我的建议是执行以下操作之一:

第一:保持查询原样,创建索引
Test\u chq\u out\u more100(ACC\u No,chq\u No)

第二:创建索引
chqinformore100(ACC\u No,Begin\u Chq\u No)
并将查询更改为:

SELECT I.Status
FROM Test_chq_out_more100 O JOIN
     chqinformore100 I
     ON I.ACC_No = O.ACC_No  AND I.Chq_No - 1 = O.Begin_Chq_no;

你有关于I.Chq\u No和O.Begin\u Chq\u No的索引吗?
SELECT I.Status
FROM Test_chq_out_more100 O JOIN
     chqinformore100 I
     ON I.ACC_No = O.ACC_No  AND I.Chq_No - 1 = O.Begin_Chq_no;