Ich führe einen Bericht in MySQL aus. Bei einer der Abfragen wird eine große Anzahl von Zeilen in eine temporäre Tabelle eingefügt. Wenn ich versuche, es auszuführen, wird folgende Fehlermeldung angezeigt:
Fehlercode 1206: Die Anzahl der Sperren überschreitet die Größe der Sperrtabelle.
Die fraglichen Fragen sind:
create temporary table SkusBought(
customerNum int(11),
sku int(11),
typedesc char(25),
key `customerNum` (customerNum)
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
insert into skusBought
select t1.* from
(select customer, sku, typedesc from transactiondatatransit
where (cat = 150 or cat = 151)
AND daysfrom07jan1 > 731
group by customer, sku
union
select customer, sku, typedesc from transactiondatadelaware
where (cat = 150 or cat = 151)
AND daysfrom07jan1 > 731
group by customer, sku
union
select customer, sku, typedesc from transactiondataprestige
where (cat = 150 or cat = 151)
AND daysfrom07jan1 > 731
group by customer, sku) t1
join
(select customernum from topThreetransit group by customernum) t2
on t1.customer = t2.customernum;
Ich habe gelesen, dass das Ändern der Konfigurationsdatei zum Erhöhen der Pufferpoolgröße hilfreich ist, aber das bringt nichts. Wie kann dies behoben werden, entweder als vorübergehende Problemumgehung oder als dauerhafte Lösung?
BEARBEITEN: Teil der Abfrage geändert. Sollte es nicht beeinflussen, aber ich habe alles gefunden und ersetzt und nicht bemerkt, dass es das vermasselt hat. Betrifft die Frage nicht.
EDIT 2: Typedesc zu t1 hinzugefügt. Ich habe es in der Abfrage geändert, aber nicht hier.
