J'effectue des requêtes sql sur la table interim_19
avec 67.500 lignes. Table n'est pas indexée, et a 7 colonnes, dont non sont des clés uniques/primaires, parce que les données principales Abonent
et idBase
se répètent, parmi toutes les données que j'ai comme 7-8 distincts idBases
et ~ 10.000 différents Abonents
, et les autres données comme date
n'est pas fiable en termes d'unicité.Slow SQL INNER JOIN
Le problème réside dans les jointures internes lentes sur cette table.
Et si je joue SELECT * FROM interim_19 WHERE idBase IN (1551 , 42286)
ça va prendre 1.33 secondes, et SELECT * FROM interim_19 WHERE idBase IN (1535 , 5406)
prendra 1,9 secondes, que ce soit
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
prend toujours - 147-157 secondes. Je comprends que la jointure interne compare chaque ligne à chaque autre rangée sur la deuxième table, mais cela ne devrait pas prendre autant de temps. OFC il fait des doublons, mais j'ai besoin de tous les 7 + 7 lignes, donc ...
P.S J'essaie déjà de l'indexer, donc d'autres conseils sont également les bienvenus.
Je ne vois pas de raison pour les tables dérivées et joint directement les tables. En outre, sélectionnez uniquement les colonnes dont vous avez réellement besoin. "SELECT *" ne vous rend pas service. –
Est-ce mySql ou SQL Server? S'il vous plaît modifier vos tags –