Mailinglist Archive: opensuse-programming-de (182 mails)
| < Previous | Next > |
Re: Mysql und JDBC Grundsätze
- From: Andre Heine <linux-experience@xxxxxxx>
- Date: Wed, 17 Mar 2004 03:45:57 +0100
- Message-id: <200403170345.57329.linux-experience@xxxxxxx>
Am Dienstag, 16. März 2004 20:29 schrieb Manfred Tremmel:
> Am Dienstag, 16. März 2004 17:38 schrieb Andre Heine:
[...]
> > Meine Frage ist nun, ob es besser ist Rechenoperationen der
> > Mysql DB zu überlassen oder besser dem Java Programm.
>
> Ich würde mal sagen, das hängt davon ab. Wenn Du es der Datenbank
> überlässt, kannst Du eventuell massiv den Datentransfer
> reduzieren, das spart eine Menge Zeit, wenn die Daten übers Netz
> laufen, also Programm und DB-Server nicht auf der selben Kiste
> laufen. Auch müssen die ganzen Felder von Datenbankfeldern nach
> Java-Variablen konvertiert werden, auch das kostet Zeit. Im
Zur Zeit habe ich die MySQL Datentypen in java.sql.* konvertiert,
die eigentlichen Daten sind Object's...
Die Column-Objekte sind als ArrayList in einem Table-Objekt.
Alle Daten-Objekte "extenden" das Table-Objekt.
Ne' Menge Overhead...
> Gegenzug muss freilich ein größeres SQL-Statement geparsed
> werden. Das lässt sich allerdings per Prepared Statements wieder
> recht gut ausgleichen.
>
> Ich bevorzuge Berechnungen in der DB wenn:
> - sich massiv Datenvolumen einsparen lassen
> - fertige Funktionen zur Verfügung stehen (Extremes Beispiel, ein
> 'SELECT COUNT(*) FROM XYZ' würde ich nicht in Java nachbilden)
Das ist klar ;)
Für einige Berechnungen habe ich verschachtelte Statements gefunden.
z.B.:
"SELECT CONCAT(vorname, " ", nachname) FROM tabellen_name
WHERE einkommen/dependents > 10000 AND age > 30;"
Das Stmt ist jetzt zwar nicht lang, aber verschachtelte SELECT/
UPDATE WHERE Stmt's werden recht schnell gross.
> Wenn das Datenvolumen ähnlich bleibt, mit ein und der selben
> Variable eventuell mehr berechnet wird und das SQL-Statement
> deutlich vereinfacht wird, würde ich ne Java-Implementierung
> vorziehen. Ein Vorteil der dadurch recht einfachen SQL-Statements
> dürfte auf jeden Fall beim Datenbankwechsel ein reduzierter
> Portierungsaufwand sein.
Das ist ein gutes Argument, bislang bin ich eigentlich sehr gut
mit Java gefahren. Habe aber sehr schlechte Erfahrungen mit Swing
gemacht (LAHM!!).
C++ und GUI geht leider nicht aus Kostengründen ;(
Ciao
Andre
> Am Dienstag, 16. März 2004 17:38 schrieb Andre Heine:
[...]
> > Meine Frage ist nun, ob es besser ist Rechenoperationen der
> > Mysql DB zu überlassen oder besser dem Java Programm.
>
> Ich würde mal sagen, das hängt davon ab. Wenn Du es der Datenbank
> überlässt, kannst Du eventuell massiv den Datentransfer
> reduzieren, das spart eine Menge Zeit, wenn die Daten übers Netz
> laufen, also Programm und DB-Server nicht auf der selben Kiste
> laufen. Auch müssen die ganzen Felder von Datenbankfeldern nach
> Java-Variablen konvertiert werden, auch das kostet Zeit. Im
Zur Zeit habe ich die MySQL Datentypen in java.sql.* konvertiert,
die eigentlichen Daten sind Object's...
Die Column-Objekte sind als ArrayList in einem Table-Objekt.
Alle Daten-Objekte "extenden" das Table-Objekt.
Ne' Menge Overhead...
> Gegenzug muss freilich ein größeres SQL-Statement geparsed
> werden. Das lässt sich allerdings per Prepared Statements wieder
> recht gut ausgleichen.
>
> Ich bevorzuge Berechnungen in der DB wenn:
> - sich massiv Datenvolumen einsparen lassen
> - fertige Funktionen zur Verfügung stehen (Extremes Beispiel, ein
> 'SELECT COUNT(*) FROM XYZ' würde ich nicht in Java nachbilden)
Das ist klar ;)
Für einige Berechnungen habe ich verschachtelte Statements gefunden.
z.B.:
"SELECT CONCAT(vorname, " ", nachname) FROM tabellen_name
WHERE einkommen/dependents > 10000 AND age > 30;"
Das Stmt ist jetzt zwar nicht lang, aber verschachtelte SELECT/
UPDATE WHERE Stmt's werden recht schnell gross.
> Wenn das Datenvolumen ähnlich bleibt, mit ein und der selben
> Variable eventuell mehr berechnet wird und das SQL-Statement
> deutlich vereinfacht wird, würde ich ne Java-Implementierung
> vorziehen. Ein Vorteil der dadurch recht einfachen SQL-Statements
> dürfte auf jeden Fall beim Datenbankwechsel ein reduzierter
> Portierungsaufwand sein.
Das ist ein gutes Argument, bislang bin ich eigentlich sehr gut
mit Java gefahren. Habe aber sehr schlechte Erfahrungen mit Swing
gemacht (LAHM!!).
C++ und GUI geht leider nicht aus Kostengründen ;(
Ciao
Andre
| < Previous | Next > |