wiki:Индекси

Version 9 (modified by 183175, 2 months ago) ( diff )

--

Индекси

Индексите ги забрзуваат операциите за пребарување и филтрирање, што значително го намалува времето на извршување на SQL барања. Индексирањето има смисла ако ќе ја подобри брзината на наредбите SELECT, JOIN, WHERE, ORDER BY и GROUP BY. Направивме измени во db.js така што Client го заменивме за Pool
бидејки client секогаш отвара нова конекција а со pool користи збир конекции за подобра оптимизација.
Кога зборуваме за поставување на барања до база, на старата верзија тоа беше веројатно многу по лимитирано,
а сега имаме овозможено повеќе истовремени конекции т.е. max: 20.
Во нашиот код рачно се отвора и затвора конекција, додека новиот код користи getClient() за подобра контрола над конекциите. Освен тоа при пад на конекција потребно е restart а сега имаме момент каде pool.on("error") ја фаќа грешката. Да не заборавиме и на Timeout моментот, сега имаме поставено idleTimeoutMillis и connectionTimeoutMillis за подобро управување.

module.exports = {
  query: (text, params) => pool.query(text, params),
  getClient: async () => {
    const client = await pool.connect();
    return client;
  },
};

Што треба да направиме прво за да имплементираме индекси?

-> Анализа на податоците
Која колона најчесто се пребарува? -> Анализа на SQL-прашалници
Кои SELECT наредби се најбавни? -> Креирање индекси Додавање индекси на соодветните колони

Attachments (2)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.