phpbar.de logo

Mailinglisten-Archive

[php] Inhalt zweier Tabellen vergleichen

[php] Inhalt zweier Tabellen vergleichen

Wolfgang Hauck php_(at)_phpcenter.de
Mon, 22 Jul 2002 15:07:38 +0200


>Huhu,

>gibt es eine Mysql-Moeglichkeit, die Differenzen zwischen zwei strukturell
>gleichen Tabellen in eine andere zu speichern resp. als Result-Set zu
bekommen
>?

>Die Datenbank ist GROSS, deswegen die Updatemethodik. Ich kann natuerlich
auch
>per PHP die Datensaetze vergleichen und dann eine neue Tabelle oder ein
LOAD
>DATA INFILE-Dings bauen. Denke mir aber ,dass vielleicht MySQL sowas schon
>mitbringt. Allerdings schweigt da die Doku, oder ich finde es nur nicht.

Hi Clemens,

Auszug aus Doku:

When loading a table with data, use LOAD DATA INFILE. This is usually 20
times faster than using a lot of INSERT statements. See section 7.15 LOAD
DATA INFILE syntax. You can even get more speed when loading data into a
table with many indexes using the following procedure:
Create the table in mysql or Perl with CREATE TABLE.
Execute mysqladmin flush-tables.
Use isamchk --keys-used=0 -rq /path/to/db/tbl_name. This will remove all
usage of all indexes from the table.
Insert data into the table with LOAD DATA INFILE.
If you have pack_isam and want to compress the table, run pack_isam on it.
Recreate the indexes with isamchk -r -q /path/to/db/tbl_name.
Execute mysqladmin flush-tables.

Es gibt noch eine bösartige Methode:

Einfach die Tabelle mit nem copy -Befehl überschreiben. Dazu solltest du
aber den mySQl - Server vorher runterfahren. Geht natürlich ratzfatz
schnell.

Eine dritte Möglichkeit ist den MySQL - Server gleich zu spiegeln. Einmal
eingerichtet musst du dich um nichts mehr kümmern. (in Kapitel 18 steht da
einiges drin)

MFG Wolfgang


php::bar PHP Wiki   -   Listenarchive