1. Einleitung Wenn ein Programm auf eine Tatsächlich bietet 2. JDBC implementiert Streaming-Abfragen Streaming-Abfragen können implementiert werden, indem die Methode öffentliche int ausführen(String sql, boolean isStreamQuery) wirft SQLException { Verbindung conn = null; Vorbereitete Anweisung stmt = null; Ergebnismenge rs = null; int-Anzahl = 0; versuchen { //Datenbankverbindung abrufen conn = getConnection(); wenn (istStreamQuery) { //Streaming-Abfrageparameter festlegen stmt = conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmt.setFetchSize(Integer.MIN_VALUE); } anders { //Normale Abfrage stmt = conn.prepareStatement(sql); } //Führen Sie die Abfrage aus, um das Ergebnis zu erhalten rs = stmt.executeQuery(); //Durchlaufe die Ergebnisse, während (rs.next ()) { System.out.println(rs.getString(1)); zählen++; } } Fang (SQLException e) { e.printStackTrace(); Endlich schließen(stmt, rs, conn); } Anzahl zurückgeben; } "PS": Im obigen Beispiel wird der Parameter 3. Leistungstest Zum Testen wird eine Testtabelle
3.1. Allgemeine Abfragen mit großem Datenvolumen testen@Prüfen öffentliche void testCommonBigData() wirft SQLException { Zeichenfolge SQL = "Wählen Sie * aus my_test aus"; testExecute(sql, false); } 3.1.1. Abfragezeit 27W Datenvolumen dauert 38 Sekunden 3.1.2. Speichernutzung Verwendet fast 1 GB Speicher 3.2. Testen von Streaming-Abfragen mit großem Datenvolumen@Prüfen öffentliche void testStreamBigData() wirft SQLException { Zeichenfolge SQL = "Wählen Sie * aus my_test aus"; testExecute(sql, true); } 3.2.1. Abfragezeit 27W Datenvolumen dauert 37 Sekunden 3.2.2. Speichernutzung Da es in Chargen erworben wird, schwankt der Speicher zwischen 30-270m 3.3. Testen Sie normale Abfragen mit kleinem Datenvolumen@Prüfen öffentliche void testCommonSmallData() wirft SQLException { Zeichenfolge SQL = "Wählen Sie * aus my_test-Limit 100000, 10"; testExecute(sql, false); } 3.3.1. Abfragezeit 10 Daten dauern 1 Sekunde 3.4. Streaming-Abfrage mit kleiner Datenmenge testen@Prüfen public void testStreamSmallData() wirft SQLException { Zeichenfolge SQL = "Wählen Sie * aus my_test-Limit 100000, 10"; testExecute(sql, true); } 3.4.1. Abfragezeit 10 Daten dauern 1 Sekunde IV. FazitMySQL-Streaming-Abfragen haben offensichtliche Optimierungseffekte auf die Speichernutzung, haben jedoch nur geringe Auswirkungen auf die Abfragegeschwindigkeit. Sie werden hauptsächlich verwendet, um das Szenario hoher Speichernutzung bei der Abfrage großer Datenmengen zu lösen. „DEMO-Adresse“: https://github.com/zlt2000/mysql-stream-query Dies ist das Ende dieses Artikels über die Verwendung von Streaming-Abfragen in MySQL zur Vermeidung von Daten-OOM. Weitere relevante Inhalte zu MySQL-Streaming-Abfragen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Eine einfache Möglichkeit zum Erstellen einer Docker-Umgebung
>>: Natives JS zur Implementierung der E-Mail-Eingabeaufforderung im Anmeldefeld
Ziehen Sie zuerst das Image (oder erstellen Sie e...
Fehler tritt auf: Beim Exportieren der Datenbank ...
Öffnen Sie das Verbindungstool. Ich verwende Moba...
Im Projekt werden Sie auf benutzerdefinierte öffe...
MySQL x64 stellt kein Installationsprogramm berei...
Schauen wir uns zunächst die Codedateistruktur an...
Inhaltsverzeichnis 1. Verwenden Sie JavaScript, u...
Hinweis 1: Lösen Sie das Problem der langsamen Ve...
Hyperlinks ermöglichen es Benutzern, sofort von ei...
Jeder kennt das Meta-Tag im Weblayout von Desktop...
1. Inline-Stil, platziert in <body></body...
Inhaltsverzeichnis 1. So finden Sie doppelte Zeil...
Inhaltsverzeichnis 1 Was ist Funktions-Currying? ...
Vorwort: Ich habe das geschrieben, weil ich meine...
1 Laden Sie das komprimierte Paket der MySQL 5.6-...