Re: MySQL schneller machen



- - schrieb:
Hi,

also der Tipp mit dem Keys ausschalten hat Wunder bewirkt - nach 30min
war alles durch, was sonst zig Stunden gedauert hat. :)


Jetzt hab ich da aber ein weiteres Problem - vielleicht gibt es da ja
auch einen Schalter, um das schneller zu machen - ist grad auch schon
wieder paar Stunden am ackern. Egal ob Konfigurationsmäßig (RAM geht
auch noch zu vergeben) oder per SQL.


Also ich habe obige Tabelle2 mit String1 varchar(50) und String2 Text
- beide mit Index und es sind knapp 3 Mio Zeilen. Ich habe eine
weitere Tabelle3 mit String2 Text mit rund 5000 Zeilen. Natürlich auch
ein Index drauf. Diese Zeilen habe ich durch ein Group by und ein
having aus Tabelle2 heraus gefiltert. Jetzt möchte ich sämtliche
Zeilen in Tabelle2 markieren, die eine der Zeilen in Tabelle3
entspricht. Ich benötige das, weil zwar String2 mehrfach gleich
vorkommt, aber String1 unterschiedlich ist - und ich dann noch weitere
Analysen auf String1 vornehmen muß.

Also ich mache daher das:

update Tabelle3, Tabelle2
set Tabelle2.flag = 'Y'
where Tabelle3.String2 = Tabelle2.String2;


Klar - das sind ne Menge Vergleiche. Aber habt ihr da eventuell auch
noch eine Idee ?

Wie wäre es, wenn Du statt der reichhaltigen Prosa die Ausgabe von
EXPLAIN SELECT, und zwar vorzugsweise mit \G abgeschlossen, hier posten
würdest? Sowie natürlich die Ausgabe von SHOW CREATE TABLE Tabelle3 und
SHOW CREATE TABLE Tabelle2?

Dann gäbe es belastbare Informationen. Wenn Dir das zu mühsam ist: In
erster Näherung könntest Du statt zu jedem zu vergleichenden String auch
dessen MD5- (oder einen anderen) Hashwert speichert und dann die
vergleichen. 32 Byte ist jedenfalls weniger als 50 oder <TEXT> Bytes.
.



Relevant Pages

  • Re: MySQL schneller machen
    ... weitere Tabelle3 mit String2 Text mit rund 5000 Zeilen. ... Zeilen in Tabelle2 markieren, die eine der Zeilen in Tabelle3 ... Analysen auf String1 vornehmen muß. ...
    (de.comp.datenbanken.mysql)
  • Verstehe Group by nicht
    ... Ich suche nun alle Personen aus der Tabelle1, die nicht in Tabelle3 ... Personen in der Tabelle2, ...
    (de.comp.datenbanken.mysql)
  • =?Utf-8?Q?Re:_Daten_aus_Inhaltsverzeichnis?= =?Utf-8?Q?s_in_die_Register_einf=C3=BCgen?=
    ... In Tabelle2: =Tabelle1!A2 Beck's... ... In Tabelle3: =Tabelle1!A4 Gerolsteine... ... Nur möchte ich nicht in jedes Tabelleblatt eine Formel eingeben. ... "Thomas Ramel" schrieb: ...
    (microsoft.public.de.excel)
  • Daten aus einer DB Tabelle in 2 andere schreiben
    ... andere Tabellen (Tabelle2 und Tabelle3) schreiben. ... Meine Anwendung öffnet Tabelle1 und bindet diese an ein Datagrid. ... (Feld1 * Feld2). ... Feld3 in Tabelle3 zu schreiben. ...
    (microsoft.public.de.german.entwickler.dotnet.datenbank)