Bjarki Geschrieben 22. Juni 2010 Geschrieben 22. Juni 2010 Hallo Zusammen, ich greife über eine Standleitung auf eine MySQL-Datenbank zu. Bei meinem Programm habe ich die Zeit ausgeben gemessen, die benötigt wird um eine Verbindung aufzubauen und anschließend wieder zu schließen: ca. 2.4 Sekunden! Mit dem Tool DBVisualizer geht das im zweistelligen Milisekundenbereich. MySQL-Version: 5.0.67 Mein Treiber: mysql-connector-java-5.1.12 Treiber DBVisualizer: mysql-connector-java-5.1.10 Da das Tool ebenfalls in Java geschrieben ist, frag ich mich welche Optimierungsmöglichkeiten es gibt. private static String DRIVER_CLASS = "com.mysql.jdbc.Driver"; private static String CONNECT_URL= "jdbc:mysql://adresse/db"; private static String USER = "user"; private static String PWD = "pwd"; public static Connection getConnection() throws ClassNotFoundException, SQLException { Class.forName(DRIVER_CLASS); Properties prop = new Properties(); if (USER != null) prop.setProperty("user", USER); if (PWD != null) prop.setProperty("password", PWD); return DriverManager.getConnection(CONNECT_URL, prop); } Zitieren
Bjarki Geschrieben 23. Juni 2010 Autor Geschrieben 23. Juni 2010 Lösung: Datenbankverbindung als Singleton und kein zwanghaftes Schließen der Connection Zitieren
speedi Geschrieben 25. Juni 2010 Geschrieben 25. Juni 2010 Lösung: Datenbankverbindung als Singleton und kein zwanghaftes Schließen der Connection Richtig. Wird sonst lustig, wenn jede Datenbank-Abfrage einen eigenen Socket erfordert. Der Socket ist auch nicht zwangsläufig sofort nach dem schließen der Verbindung wieder weg (ich weiß nicht wie das bei den jeweiligen Connectoren gemacht ist, aber generell muss man sich da bei einem TCP-Socket selbst drum kümmern, wenn man will das er danach gleich weg ist - vielleicht arbeiten viele Connectoren so, aber drauf wetten würd ich eben nicht). Ressourcen-Verschwenung ist es auch. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.