我上表interim_19
执行SQL请求以67.500排。表不被编入索引,且具有7列,非其中是唯一的/主键,因为主数据Abonent
和idBase
被重复,所有的数据中予有像7-8不同idBases
和〜10.000不同Abonents
,以及其他数据等date
在唯一性方面不可靠。慢SQL INNER JOIN
的问题是在慢内部连接在这个表上。
如果我执行SELECT * FROM interim_19 WHERE idBase IN (1551 , 42286)
它会采取1.33秒,并SELECT * FROM interim_19 WHERE idBase IN (1535 , 5406)
将采取1.9秒,
SELECT * FROM (SELECT * FROM interim_19 WHERE idBase IN (1551 , 42286))
temp1
inner join
(SELECT * FROM interim_19 WHERE idBase IN (1535 , 5406)) temp2
on temp1.Abonent = temp2.Abonent
是否需要永远 - 147-157秒。我知道内连接不会比较每一行到第二个表上的每一行,但是这不应该花这么长时间。 OFC它让重复的,但我需要的所有7个+ 7行,所以......
P.S我已经试图建立索引,以便其他建议也欢迎。
我没有看到派生表的原因,并直接连接表。另外,只选择您实际需要的列。 “SELECT *”对你没有任何好处。 –
它是mySql还是SQL Server?请编辑您的标签 –