Задать вопрос
StivinKing
@StivinKing

Как «раскачегарить» NodeJS?

Доброго времени суток,

С другом думаем как "раскачегарить" nodejs. Есть данные (несколько миллионов). Если 2 задачи: взять одну запись по id и взять n-записей согласно какому-то условию.
Для теста храним данные в памяти. Расположили как объект, где ключ = id записи. Таким образом легко дергать по id. Но вот искать записи по условию - это ужас :) в общем обрабатывает примерно 21 запрос в секунду. Это капец, судя по показателям производительности 99%, что нужно писать по другому, но вот как лучше?

Немного по коду. Все показать не могу, к сожалению:
app.js
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
    for (let i = 0; i < numCPUs; i++) {
        cluster.fork();
    }
    cluster.on('exit', (worker, code, signal) => process.exit(1));
} else require('./create-server');

create-server.js
const http = require('http');
const parser = require('url');

// ...

module.exports = http.createServer((req, res) => {
    res.setHeader('Content-Type', 'application/json');
    let url = parser.parse(req.url, true);
    // routes ...
}).listen(10000, () => { ... });

models/Test.js

Здесь будут храниться миллионы записей
const Test = {};
module.exports = Test;



На NodeJS пишу недавно, вообще на python пишу
Нашел рейтинг - ссылка
  • Вопрос задан
  • 254 просмотра
Подписаться 1 Оценить 3 комментария
Решения вопроса 3
SPAHI4
@SPAHI4
реактовцы - это не девы, а прокидыватели пропсов
Использовать Redis (а лучше не nodejs)
Ответ написан
@maxtm
Make money, not job
Эм, а чем вам СУБД не угодили?
Тот же MySQL Вам выдаст 1000+ RPS на 2 млн. таблице, при правильной настройке индексов.
Ответ написан
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Любая СУБД (MySQL, MongoDB, Redis) даст вам прирост скорости на порядок даже без индексов, а уж с индексами тем более. Они на то и заточены, чтобы быстро искать данные по условиям.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы