Как ускорить время ответа на запрос?
Существует коллекция в базе, которая насчитывается около 4.6 миллиона документов.
(структуру данных можно увидеть на скриншоте.)

При попытке вытащить из данной коллекции хотя бы одно значение - время ответа на запрос достигает более 3 секунд:
(и это на моей локальной довольно мощной машине.)
Код работы с запросом выглядит следующим образом:
// server.js
const http = require('http');
const { getProducts } = require('./controllers/currencyController');
const server = http.createServer((req, res) => {
if(req.url.match(/\/api\/currency.+/g) && req.method === 'GET') {
getProducts(req, res);
} else {
res.writeHead(404, { 'Content-Type': 'application/json' })
res.end(JSON.stringify({ message: 'Route Not Found' }))
}
})
const PORT = process.env.PORT || 5000
server.listen(PORT, () => console.log(`Server running on port ${PORT}`))
module.exports = server;
// currencyModel.js
const {MongoClient} = require('mongodb');
const client = new MongoClient('mongodb://127.0.0.1:27017/');
const findAll = async (currencyPair) => {
try{
await client.connect();
const testingData = client.db('Trading').collection(currencyPair);
return testingData;
}
catch(e){
console.log(e);
}
}
module.exports = {
findAll,
}
// currencyController.js
const currencyData = require('../models/currencyModel')
async function getProducts(req, res) {
try {
const currency_data = await currencyData.findAll('EUR/USD');
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify(await currency_data.find({id:1}).toArray()));
} catch (error) {
console.log(error)
}
}
module.exports = {
getProducts,
}
Подозреваю что причина такого долгого ответа может быть как то связано с отсутствием индексов.
(те числовые, что присутствуют сейчас созданы кастомно.)
Вопрос:
Каким образом можно ускорить время получения ответа от сервера после получения запроса?
(желательно без применения ORM и фреймворков.)
И каким вообще должно быть это время в идеале?
