Ich habe viele genau die gleichen Tabellen. TableA, TableB, TableC, TableD usw., aus denen ich Ansichten erstellen möchte. Doing select * from TableA
dauert 20ms, macht select * from tableB
dauert 20ms, aber (select * from TableA) union all (select * from TableB)
dauert über 20 Minuten. Diese Tabellen haben genau die gleichen Spalten. Gibt es Einstellungen in my.cnf, die ich ändern muss, oder eine Möglichkeit, eine Ansicht zu erstellen, die schneller ausgeführt wird? Alle Tabellen haben Reihen von 1,5 m bis etwa 10 m.Kann UNION ALL schneller ausgeführt werden?
Ergebnisse erklären
PRIMARY TableA ALL 28808685
UNION TableB ALL 15316215
UNION RESULT <union1,2> ALL Using temporary
Tabellenstruktur: 10 VARCHAR (20) 's, 5 unsigned INTs.
'BESCHREIBEN' und' EXPLAIN', bitte. – bishop
Wenn Ihre Tabelle A über 1,5 Millionen Zeilen verfügt, können nicht nur 20ms alle Zeilen zurückgeben. Wenn Sie irgendwo zwischen 5M und 40M Zeilen zurücksenden, wird es eine Menge Zeit benötigen - es gibt vielleicht andere Dinge, die Sie optimieren können, wie die Methode der Datenwiederherstellung (mit einem Cursor, vs alles im Speicher usw .). – nos