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
Vorwort Nachdem ich den vorherigen Artikel über d...
In der MySQL-Datenbank gibt es eine Tabelle Stude...
Deklarieren Sie den Parameternamen, den Typ und d...
Inhaltsverzeichnis 1. Schnittstellendefinition 2....
Nginx kann im Allgemeinen für siebenschichtigen L...
Wir möchten in HTML und CSS die Farbe eines Butto...
Dieser Artikel beschreibt anhand von Beispielen d...
GUN-Bildschirm: Offizielle Website: http://www.gn...
1. Tabellenstruktur TABELLE person Ausweis Name 1...
Inhaltsverzeichnis 1. DOM-Diff 2. Fügen Sie Eleme...
In diesem Artikel wird der spezifische JavaScript...
Laden Sie das Java Development Kit jdk herunter D...
JavaScript - Prinzipienreihe Wenn wir in der tägl...
Kürzlich habe ich auf der B-Station einen Sperrfe...
Überblick Im vorherigen Kapitel haben wir die Fil...