phpbar.de logo

Mailinglisten-Archive

LAYOUT Re: Newbie: Replikation etwas anders/komplizierter...

LAYOUT Re: Newbie: Replikation etwas anders/komplizierter...

Sebastian Mendel lists at sebastianmendel.de
Fre Okt 26 10:03:32 CEST 2007


Tobias Mueller-Wrana schrieb:

> Eine extrem lang laufende Abfrage (so in der Art) als Bsp.:
> 
> select * from Tabelle1, Tabelle2 where Tabelle1.id=Tabelle2.id and
> Tabelle2.id not in (select distinct(id) from Tabelle3);

ich kenn mich nicht 100% aus bei ... NOT IN (SELECT ...) aber ich würde
vermuten das MySQL es hier eher schwer hat den Index vernünftig zu verwenden ...

vielleicht wäre folgendes etwas schneller:

    SELECT *
      FROM Tabelle1
 LEFT JOIN Tabelle2
     USING (id)
 LEFT JOIN Tabelle3
     USING (id)
     WHERE ISNULL(Tabelle3.id)

oder

    HAVING ISNULL(Tabelle3.id)


> Anmerkung: Das ist die Abfrage, die wir bräuchten um den "Müll"
> aus der DB zu entfernen... (Alles was in T1 & T2 ist, aber nicht mit
> T3 assoziiert, soll raus). Sie dauert ein paar Stündchen *gähn* und
> legt somit das Echtzeitproblem lahm.

okay, nur um sicher zu sein, ein EXPLAIN hast du aber schonmal probiert?

und ich vermute mal die ganzen CACHE und Speichereinstellungen wurden schon
überprüft? (tmp_table_size, key_cache, sort_buffer, table_cache, ...)


> @Sebastian: Das konzeptionelle Problem(?) stammt a) nicht von mir und
> b) wird schwierig sein es generell zu ändern. :-(
> 
> MERGE habe ich noch nicht ausprobiert. Werde mich mal belesen. Doch mit
> einem nächtlichen Cronjob/Skript muss hoffentlich nicht die DB
> runtergefahren

nein, ein ganz normales Script welches per SQL alte Daten in die andere
Tabelle verschiebt ...


> werden, denn sie muss 24/7 einsatzbereit sein.
> Ist MERGE eine Liveupdate? Und ginge MERGE auch über mehrere Tabellen?
> Wenn ja, könnte man die Replikation ja, über die 7 Tages Tabellen laufen
> lassen?

MERGE fasst mehrere identische MyISAM Tabellen zu einer zusammen


-- 
Sebastian
_______________________________________________
Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de

php::bar PHP Wiki   -   Listenarchive