Veröffentlicht 22. Juni 201015 j 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); }
23. Juni 201015 j Autor Lösung: Datenbankverbindung als Singleton und kein zwanghaftes Schließen der Connection
25. Juni 201015 j 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.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.