Aké prístupy je potrebné použiť na zvýšenie efektívnosti vykonávania dopytov do databázy?
sobes.tech AI
Odpoveď od AI
Na zlepšenie efektívnosti dopytov do databázy v Node.js môžete použiť nasledujúce prístupy:
-
Indexovanie: vytvárajte indexy na často používaných poliach v podmienkach vyhľadávania, aby ste zrýchlili výbery.
-
Stránkovanie a obmedzenie: neukladajte všetky dáta naraz, používajte
LIMITaOFFSETalebo kurzory na načítanie častí dát. -
Optimalizácia dopytov: vyhýbajte sa nadbytočným JOIN-om, vyberajte len potrebné polia (
SELECTkonkrétnych stĺpcov namiestoSELECT *). -
Caching: používajte cache pre často požadované dáta (napríklad Redis).
-
Pool pripojení: používajte pool pripojení k databáze, aby ste sa vyhli nákladom na vytváranie spojení.
-
Paralelné dopyty: ak je to možné, spúšťajte nezávislé dopyty paralelne.
-
Chytré používanie ORM: ak používate ORM, sledujte počet a zložitosť generovaných dopytov.
-
Profilovanie a monitorovanie: analyzujte pomalé dopyty a optimalizujte ich.
Príklad použitia poolu pripojení s mysql2:
const mysql = require('mysql2/promise');
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
database: 'test',
waitForConnections: true,
connectionLimit: 10,
queueLimit: 0
});
async function getUsers(limit) {
const [rows] = await pool.query('SELECT id, name FROM users LIMIT ?', [limit]);
return rows;
}
Tento prístup znižuje čakaciu dobu na spojenia a zlepšuje celkový výkon.