Hallo,
ich wollte mal nachfragen ob es irgendeine Möglichkeit gibt Einfügeprozesse in die Datenbank zu beschleunigen. Ich benutze MySQL 4.0.20 auf Windows XP (2100+, 1GB Ram) (habe es aber auch schon auf Debian mit MySQL 3.XX, 4.0.20 und 4.0.13 versucht).
Zum Thema: Ich versuche derzeit Stats für ein Spiel zu parsen, die Informationen werden dann in der Datenbank abgelegt. Pro Tag kommen etwa 3-4 XML Dateien zum parsen hinzu die ca. 8-14 mb groß sind. Meine Datanbankgröße ist inzwischen auf stolze 27mb gewachsen. Anfangs benötigte das parsen und Einfügen der Informationen einer Datei ca. 5 Minuten. Mittlerweile beträgt die Dauer jedoch 40 Minuten, davon benötigt der Einfügeprozess 38 Minuten. Ich habe mich zwar schon ein wenig umgeschaut, wie ich meine "my.cnf" editieren kann, bisher hatte ich damit aber leider keinen Erfolg. Es kann auch gut sein, daß das parsing-Tool das ich benutze, nicht gerade optimale sql-statements fürs einfügen benutzt, dies kann ich aber leider nicht überprüfen. Ich hoffe es hat irgendwer n paar Tips. Die Datenbank ist zwar schon recht groß von demher habe ich erwartet dass mit wachsender Datenbank auch die Dauer ansteigt, jedoch 40 Minuten für 12mb Daten ist denke ich doch ein wenig viel.
Hier mal meine my.cnf:
Danke jetzt schonmal,
Gruß moogwai
ich wollte mal nachfragen ob es irgendeine Möglichkeit gibt Einfügeprozesse in die Datenbank zu beschleunigen. Ich benutze MySQL 4.0.20 auf Windows XP (2100+, 1GB Ram) (habe es aber auch schon auf Debian mit MySQL 3.XX, 4.0.20 und 4.0.13 versucht).
Zum Thema: Ich versuche derzeit Stats für ein Spiel zu parsen, die Informationen werden dann in der Datenbank abgelegt. Pro Tag kommen etwa 3-4 XML Dateien zum parsen hinzu die ca. 8-14 mb groß sind. Meine Datanbankgröße ist inzwischen auf stolze 27mb gewachsen. Anfangs benötigte das parsen und Einfügen der Informationen einer Datei ca. 5 Minuten. Mittlerweile beträgt die Dauer jedoch 40 Minuten, davon benötigt der Einfügeprozess 38 Minuten. Ich habe mich zwar schon ein wenig umgeschaut, wie ich meine "my.cnf" editieren kann, bisher hatte ich damit aber leider keinen Erfolg. Es kann auch gut sein, daß das parsing-Tool das ich benutze, nicht gerade optimale sql-statements fürs einfügen benutzt, dies kann ich aber leider nicht überprüfen. Ich hoffe es hat irgendwer n paar Tips. Die Datenbank ist zwar schon recht groß von demher habe ich erwartet dass mit wachsender Datenbank auch die Dauer ansteigt, jedoch 40 Minuten für 12mb Daten ist denke ich doch ein wenig viel.
Hier mal meine my.cnf:
Code:
[client]
port = 3306
socket =D:/Programme/mysql/mysql.sock
[ mysqld]
port = 3306
socket = D:/Programme/mysql/mysql.sock
skip-locking
set-variable = key_buffer=96M
set-variable = max_allowed_packet=1M
set-variable = table_cache=250
set-variable = sort_buffer=512K
set-variable = net_buffer_length=8K
set-variable = myisam_sort_buffer_size=8M
log-bin
server-id = 1
basedir=D:/Programme/mysql
tmpdir=D:/Programme/mysql/tmp
datadir=D:/Programme/mysql/data
# Uncomment the following if you are using BDB tables
#set-variable = bdb_cache_size=4M
#set-variable = bdb_max_lock=10000
[mysqldump]
quick
set-variable = max_allowed_packet=16M
[ mysql]
no-auto-rehash
[isamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[myisamchk]
set-variable = key_buffer=20M
set-variable = sort_buffer=20M
set-variable = read_buffer=2M
set-variable = write_buffer=2M
[mysqlhotcopy]
interactive-timeout
[WinMySQLadmin]
Server=D:/Programme/mysql/bin/mysqld-nt.exe
Danke jetzt schonmal,
Gruß moogwai