PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql performance



supersucker
14.03.2006, 13:36
hi zusammen,

ich mache über jdbc auf einer mysql 4.1.18 db immer erst ein select, welches gefolgt wird von 2 inserts, und das je nach dem was ich gerade mache einige tausend mal. und das dauert ziemlich lang.

ein kollege von mir meinte nun das es sein könnte, das mysql mit der kombination select / insert / insert, select / insert /insert usw. nicht wirklich effizient arbeiten kann und das es einen WESENTLICHEN geschwindigkeits unterschied machen würde erst alle selects zu machen und dann alle inserts. die anzahl aller selects und inserts würde dabei aber gleich bleiben.

ich würde sagen das es nicht so ist, verfüge aber über zuwenig wissen über die mysql-interna um das mit sicherheit zu sagen.

was haltet ihr davon / was wisst ihr darüber?
stimmt das? wenn ja weshalb?

brahma
14.03.2006, 13:38
Ich würde eher sagen das Problem kommt von deiner jdbc-schnittstelle/Treiber, weil wenn du z.B. die Abfragen mal in eine Textdatei schreibst und die direkt in mysql reinschiebst, geht das eigentlich sehr schnell meiner Erfahrung nach.

supersucker
14.03.2006, 13:47
weil wenn du z.B. die Abfragen mal in eine Textdatei schreibst und die direkt in mysql reinschiebst, geht das eigentlich sehr schnell meiner Erfahrung nach.

genau das mache ich gerade.......:-)

mir ging es nicht darum schnellere lösungen zu finden (weil ich die afaik schnellste gerade eh mache) sondern ob mein kollege mit seiner aussage recht hatte, und wenn er recht haben sollte warum das so ist.

ninguno
14.03.2006, 14:11
einen kleinen unterschied kann es imho schon machen, wenn die festplatte den schreib/lese-kopf deswegen häufiger neu positionieren muss, aber das hängt von vielen faktoren ab, wie:

° grösse der tabelle
° tabellentyp, storage engine
° existieren Indizes auf der Tabelle
° hardware konfiguration: festplatte(n), raid level etc.

brahma
14.03.2006, 14:11
jdbc war die java-schnittstelle von mysql oder? wenn dann dürfte das problem beim j in jdbc zu finden sein.

supersucker
14.03.2006, 14:37
jdbc war die java-schnittstelle von mysql oder? wenn dann dürfte das problem beim j in jdbc zu finden sein.

ne, bitte keine "java ist scheisse weil langsam"-diskussion. viele dinge bei java gefallen mir nicht, aber es hat schon seine gründe das in (meiner erfahrung nach) 30%-40% aller stellenanzeigen java-coder gesucht werden.


einen kleinen unterschied kann es imho schon machen, wenn die festplatte den schreib/lese-kopf deswegen häufiger neu positionieren muss, aber das hängt von vielen faktoren ab, wie:

° grösse der tabelle
° tabellentyp, storage engine
° existieren Indizes auf der Tabelle
° hardware konfiguration: festplatte(n), raid level etc.

hmm, ja, das mit der positionierung des schreib/lese kopf wäre das einzige was mir eingefallen wäre. es wäre für mich nur interessant gewesen zu wissen ob mysql evtl. bei gleichartigen operationen schneller arbeitet. (damit mein ich nur die interne verarbeitung von anfragen unabhängig davon ob die art der anfrage ungeschickt für das lesen und schreiben auf platte ist.)

brahma
14.03.2006, 14:58
Nein, sollte keine Diskussion zu java sein, kenne die Vor- und Nachteile, meine Erfahrung ist nur, das die java-mysql-schnittstelle langsamer ist als z.B. die von php und python, und nix ist eben schneller als die mysql-konsole.

also das mit den leseköpfen kann ich mir so nicht vorstellen, bzw. nicht das es in einem merkbaren bereich ist, weil eben die gleichen operationen meiner erfahrung nach in der konsole schneller sind.