Bitte können Sie mir helfen, ich diese Ausnahme immermySQL lange Abfrage Sperre Timeout Ausnahme
Lock wait timeout exceeded; try restarting transaction
und ich bin mit dieser Abfrage.
UPDATE Table1 INNER JOIN Table2
SET Table1.xCoord = Table2.Longitude, Table1.yCoord = Table2.Latitude,
Table1.location2 = CONCAT(Table2.Street, ', ', Table2.Post_Town, ', ',
Table2.County, ', ', Table2.Postcode, ', UK ')
WHERE (Table1.location2 = '' OR Table1.location2 IS NULL) AND
(Table1.location1 LIKE CONCAT('%', Table2.Street, '%'))
AND (Table2.location1 LIKE CONCAT('%', Table2.Post_Town, '%'));
Tabelle 2 ist 30 Millionen Zeilen und Tabelle 1 ist 4000 Zeilen (wahrscheinlich zu erhöhen). Ich habe einen Index auf 1. Straße 2. Stadt. Als Antwort auf Rick gab Ive Beispieltabellen.
- Tabelle 1
| Standort 1 || Standort 2 || Postleitzahl
|| Wohnung 30 234 Festplatte Straße morganvale || (neue Zeichenfolge hinzufügen) ||
- Tabelle 2
|| Haus nein || Straße || Stadt || Postleitzahl || xcoord || ycoord ||
|| 234 || Festplattenstraße || Morganvale || mr12 123 || 5.1234 || 24.2345 ||
und ich stimme den Straßennamen und Stadt mit dem LIKE-Muster. Die Kommas wurden entfernt und location1 ist alles Kleinbuchstaben.
Ich benutze AWS und habe 100 GB Speicherplatz, um die Schreibgeschwindigkeit zu erhöhen, und ich benutze eine t2.small mit 2 GB RAM.
Meine Frage ist, dass diese Abfrage schneller ausgeführt werden kann und wie verhindere ich die Sperre Wartezeit Ausnahmefehler. Ist die Anfrage korrekt?
Ziel der Abfrage ist x und y-Koordinaten und einen Ort zu tabelle1 von einer 30 Millionen-Datei in table2 hinzuzufügen.
Ich habe über Alternativen nachgedacht? postgre postgis wird diese Abfrage schneller als mysql ausführen. Wie wäre es mit diesem Zusammenfügen von Tabellen aus einer Anwendung wie Java?
Diese Abfrage kann keine Indizes verwenden, um die Wo-Kriterien zu beschleunigen. Erwägen Sie stattdessen Volltextindizes und Volltextsuche. – Shadow
Uh, Ihre Abfrage erstellt einen kartesischen Join zwischen den 2 Tabellen, der zu 4000 * 30 Millionen Datensätzen führt, ohne dass Indizes verwendet werden können. Sie müssen diese Übung komplett überdenken. – Shadow
Und wir können nicht sagen, ob die Frage corect ist oder nicht, weil wir nicht wissen, was es tun soll, noch kennen wir Ihre Daten. – Shadow