Weyoun
2013-04-17, 20:15:35
Hi,
ich erstelle gerade mit einem bash-script eine Reihe von Datensätzen, die ich per mysql Befehl "INSERT INTO ..." in eine mysql datenbank reinschreiben möchte.
Ich habe es jetzt so gemacht, dass alle mysql befehle in einem bash string stecke und diese schicke ich dann in einem einzigen Aufruf an die Datenbank.
Mein Problem ist, es dauert mehrere Minuten bis mysql meine 10k "INSERT INTO..." Befehle abgearbeitet hat. Ich sehe dabei meine Festplatte während des mysql Aufrufes konstant leuchten. Das Problem ist nicht das bash-script, das Problem ist das mysql Programm selbst.
Er bleibt im script an folgender Zeile für einige Minuten stecken:
echo -e "$sql_commands" | mysql -uUSER -pPW
wobei $sql_commands ein String mit ca. 10.000 SQL-Befehlen ist.
Ich bin noch ziemlich neu was mySQL-Datenbanken angeht und frage mich ob ich das nicht irgendwie mit einer Option steigern kann, indem ich die Datenbank vorläufig auf den Arbeitsspeicher auslagern kann. Das ist während der Entwicklungsphase aus Sicherheitsgründen nur temporär, würde mir aber während des Codens viel Wartezeit sparen.
Auf eine RAMDISK auslagern habe ich mir schon angeschaut. (Link: http://tomislavsantek.iz.hr/2011/03/moving-mysql-databases-to-ramdisk-in-ubuntu-linux/)
Werde ich wohl machen, wenn es keine andere Option gibt. Hätte vermutet, das man bei mysql in einer .conf oder einer flag irgendwas einstellen kann.
Bin in mysql noch Anfänger, sicherlich habe ich irgendwas übersehen. Wäre für Hinweise sehr dankbar.
ich erstelle gerade mit einem bash-script eine Reihe von Datensätzen, die ich per mysql Befehl "INSERT INTO ..." in eine mysql datenbank reinschreiben möchte.
Ich habe es jetzt so gemacht, dass alle mysql befehle in einem bash string stecke und diese schicke ich dann in einem einzigen Aufruf an die Datenbank.
Mein Problem ist, es dauert mehrere Minuten bis mysql meine 10k "INSERT INTO..." Befehle abgearbeitet hat. Ich sehe dabei meine Festplatte während des mysql Aufrufes konstant leuchten. Das Problem ist nicht das bash-script, das Problem ist das mysql Programm selbst.
Er bleibt im script an folgender Zeile für einige Minuten stecken:
echo -e "$sql_commands" | mysql -uUSER -pPW
wobei $sql_commands ein String mit ca. 10.000 SQL-Befehlen ist.
Ich bin noch ziemlich neu was mySQL-Datenbanken angeht und frage mich ob ich das nicht irgendwie mit einer Option steigern kann, indem ich die Datenbank vorläufig auf den Arbeitsspeicher auslagern kann. Das ist während der Entwicklungsphase aus Sicherheitsgründen nur temporär, würde mir aber während des Codens viel Wartezeit sparen.
Auf eine RAMDISK auslagern habe ich mir schon angeschaut. (Link: http://tomislavsantek.iz.hr/2011/03/moving-mysql-databases-to-ramdisk-in-ubuntu-linux/)
Werde ich wohl machen, wenn es keine andere Option gibt. Hätte vermutet, das man bei mysql in einer .conf oder einer flag irgendwas einstellen kann.
Bin in mysql noch Anfänger, sicherlich habe ich irgendwas übersehen. Wäre für Hinweise sehr dankbar.