Heim > Artikel > Web-Frontend > Langsame SQL-Abfragen? Steigern Sie die Leistung Ihrer App mit dieser Technik
In meiner App (React + Spring Boot + Oracle) führte der Umgang mit großen Datenmengen zu einer frustrierend langsamen Verarbeitungszeit. Ich brauchte eine Lösung, um die Leistung zu beschleunigen, ohne Kompromisse bei der Genauigkeit oder Vollständigkeit einzugehen.
NTILE ist eine leistungsstarke SQL-Fensterfunktion, die dazu dient, eine Ergebnismenge in eine bestimmte Anzahl ungefähr gleich großer Blöcke, sogenannte „Kacheln“, zu unterteilen. Jeder Zeile wird basierend auf ihrer Position in der geordneten Menge eine Partitionsnummer zugewiesen.
Durch die Verwendung von NTILE habe ich die Abfrageergebnisse in überschaubare Blöcke aufgeteilt und diese Partitionen parallel verarbeitet. Dieser Ansatz ermöglichte es mir, Daten gleichzeitig abzurufen und zu verarbeiten, wodurch die Wartezeiten erheblich verkürzt wurden.
Hier ist ein praktisches Beispiel, wie Sie dies umsetzen können:
WITH PartitionedSales AS ( SELECT sales_id, sales_amount, sales_date, NTILE(2) OVER (ORDER BY sales_id) AS partition_number -- Assigns a partition number (1 or 2) to each row FROM sales WHERE sales_date BETWEEN '2023-01-01' AND '2023-12-31' ) SELECT * FROM PartitionedSales WHERE partition_number = :partitionNumber -- Replace :partitionNumber with the actual partition number (1 or 2)
Im obigen SQL-Snippet:
Im Frontend können Sie die Parallelverarbeitung verwenden, um jede Partition effizient abzurufen:
async function fetchPartition(partitionNumber) { const response = await fetch('/api/sales?partition=' + partitionNumber}); return response.json(); } async function fetchData() { try { const [partition1, partition2] = await Promise.all([ fetchPartition(1), // Fetch the first partition fetchPartition(2) // Fetch the second partition ]); // Combine and process results const combinedResults = [...partition1, ...partition2]; processResults(combinedResults); } catch (error) { console.error('Error fetching data:', error); } }
In diesem Code:
Wenn Sie die Leistung Ihrer datenintensiven Anwendungen steigern möchten, probieren Sie diese Methode aus. Dies ist eine intelligente und effektive Möglichkeit, Ihre Anfragen nicht länger, sondern härter bearbeiten zu lassen.
Bei der Bearbeitung gleichzeitiger Anfragen kann der Bedarf an Datenbankverbindungen erheblich werden. Diese starke Auslastung der Verbindungen kann Ihre Datenbank belasten und möglicherweise zu Leistungsengpässen führen. Es ist wichtig, die Anzahl gleichzeitiger Anfragen zu überwachen und zu verwalten, um sicherzustellen, dass Ihre Datenbank reaktionsfähig bleibt und effizient arbeitet.
Das obige ist der detaillierte Inhalt vonLangsame SQL-Abfragen? Steigern Sie die Leistung Ihrer App mit dieser Technik. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!