phpbar.de logo

Mailinglisten-Archive

Nochmal DELAY_KEY_WRITE-Problem

Nochmal DELAY_KEY_WRITE-Problem

Cybot 4t2.com-mysql at tekkno4u.de
Don Apr 3 10:49:04 CEST 2003


> ich stehe vor folgendem Problem: Für eine Testdatenbank ist es 
> notwendig, ca. 18 Mio. Adress-Datensätze in eine MySQL-DB zu schreiben. 
> Diese Datensätze werden über PHP auf Zufallsbasis erzeugt. Da dies ja 
> schon eine Weile dauert, habe ich erstmal folgende Massnahmen getroffen:
> 
> 1.) Die Connection persistent geöffnet.
> 2.) Die Tables via "LOCK TABLES xyz WRITE" gelockt (habe danach sofort 
> die INSERTS gefahren).
> 3.) Da später auf dem Nachnamenfeld Selektionen rüberlaufen, habe ich 
> dieses Feld indiziert. Um dem daraus resultierenden Performanceeinbruch 
> beim INSERT entgegenzuwirken, habe ich das DELAY_KEY_WRITE auf "1" gesetzt.
> 
> Nun musste ich feststellen, dass dies ohne Wirkung blieb. Zum Vergleich: 
> Vor der Indizierung konnte ich ca. 4.300 Datensätze/Sekunde einfügen. 
> Nach der Indizierung und mit eingeschaltetem DELAY_KEY_WRITE nur noch 
> 3.400 DS/Sekunde. Sobald ich das Bit wieder auf "0" stelle, macht sich 
> das in keinster Weise bemerkbar.

ALTER TABLE tbl_name DISABLE KEYS
und
ALTER TABLE tbl_name ENABLE KEYS

außerdem wäre es vielleicht schneller wenn das php-script ein file 
erzeugt und das file dann per LOAD DATA INFILE in die DB lädst

das alles und noch viel mehr:
http://www.mysql.com/doc/en/Insert_speed.html

-- 
Sebastian Mendel

www.sebastianmendel.de
www.tekkno4u.de
www.nofetish.com

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive