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
Seit kurzem ist https auch auf dem Handy möglich....
Inhaltsverzeichnis Einführung Verwendung von Vers...
Zuerst dachte ich, es läge an der Geschwindigkeit ...
Der spezifische Code des mit Js erstellten Schieb...
Berechnete Eigenschaften Manchmal packen wir zu v...
Hinweis: Die derzeit beliebtesten Front-End-Frame...
1. SSH-Remoteverwaltung SSH ist ein sicheres Kana...
Guten Morgen allerseits, ich habe meinen Artikel ...
Vorwort Zuerst wollte ich es mit wget auf CentOS8...
Inhaltsverzeichnis 1. Verwenden Sie SVG 2. Verwen...
Allgemeine Verwendung von Regexp in Mysql Fuzzy-M...
Inhaltsverzeichnis 1. Problemhintergrund 2. Welch...
Inhaltsverzeichnis 1. Rezeptsammlung 1.1 Projekth...
Vorwort Zuvor habe ich über das Problem der verti...
Hintergrund Im Projekt besteht die Anforderung, a...