Привет, блин щас вообще без настроения сижу, помогите братья.
У меня в качестве базы данных есть mongodb.
В некой таблице например messages есть 10.000 записей(документов таблицы).
Я включил setInterval 1 сек, и через каждую секунду у меня идет запрос к базе чтобы вывести 200 сообщений(размер каждого сообщения 2.5кб) из 10.000, и это операция у меня занимает 1.5 сек, НО если я вместо 1 сек поставлю setInterval 10 мс, то время операции будет потихоньку возрастать, почему я вместо 1 сек поставил 10 мс? Это типо тестинг нагрузки. Собственно вопрос: что делать? братья я знаю что вы со мной xD
Индекс я специально не прикрепил, mongo у меня обрабатывает 10k запросов в одной коллекции за 0.9~1.1 сек, если одновременно 10 пользователям, то 1.9~2.5 сек, если 100 то время растет и т.д. Я хотел бы уменьшить возрастающее время
Да, реально индексы помогли, я аш афигел когда увидел скорость отклика у mongo с индексами, без индексов mongo мог у меня на средней машинке одновременно обрабатывать за секунду 80-90 запросов, а щас не считая что у меня чистое обращение без кеширования и что мой комп не крутой, он может за секунду обрабатывать 3000 запросов в секунду и это все вместе с тем что каждый документ весить 1~1.5кб,
Если скорость добавления новых записей низкая - то можете делать выборку данных из базы, записывать все в некую глобальную/локальную в данной области видимости переменную, и все последующие чтения брать из переменной, вместо запроса к бд.
Когда добавляется новая запись - делать новый запрос к базе, и снова все писать в глобальную переменную.
Этакое кэширование в памяти на коленке.