我有这两个包含数千个数据的表,我会在两个表上找到匹配1:1。我有下面的查询,但是当限制已经超过1000时,返回开始变慢,我收到结果花了将近一个小时,我使用本地xampp作为数据库,并且有一个4G(3.4G可用) )RAM PC。
还有其他方法可以更快地增强和查询查询吗?
提前感谢那些愿意帮助的人。
SELECT a.rNum,
a.cDate,
a.cTime,
a.aNumber,
a.bNumber,
a.duration,
a.tag,
a.aNumber2,
a.bNumber2,
'hasMatch',
a.concatDate,
a.timeMinutes
FROM tableOne a
INNER JOIN
tableTwo b ON a.aNumber2 = b.aNumber2
AND a.bNumber2 = b.bNumber2
WHERE a.hasMatch = 'valid'
AND (a.duration - b.duration) <= 3
AND (a.duration - b.duration) >= -3
AND TIMEDIFF(a.concatDate,b.concatDate) <= 3
AND TIMEDIFF(a.concatDate,b.concatDate) >= -3
LIMIT 0,100;
答案 0 :(得分:1)
显而易见的问题是:你有索引吗?
正如所写,是tableOne(aNumber1, aNumber2)
和tableTwo(bNumber1, bNumber2)
上尝试的最佳索引。
如果您提供样本数据,所需结果以及您尝试执行的操作的说明,可能会有进一步的建议。
答案 1 :(得分:0)
您可以简单地尝试许多步骤