Я выполняю запрос, который возвращает много данных. Он ищет 916 документов, каждый из которых имеет большое поле данных (около 5 МБ). Запрос выглядит так:
db.collection.find(
{'name': somename, 'currency': mycurrency,
'valuation_date': {'$in': [list_of_250_datetime_datetime]}
}.{'data_column: is set to true or false in the below test results}).limit(x)
Я пытался оптимизировать запрос и обнаружил, что большую часть времени тратится на загрузку (или передачу) такого большого элемента данных, а не на поиск его в базе данных объемом 5 ГБ. Поэтому я предполагаю, что запрос должным образом оптимизирован и индексы используются правильно, что также подтверждается профилировщиком.
Итак, я предполагал, что загрузка данных с диска займет большую часть времени, но кажется, что когда я использую механизм хранения в памяти, все на самом деле замедляется. Как это возможно? И что еще я могу сделать, чтобы ускорить процесс?
В памяти механизма хранения:
================ Starting test using mongodb://localhost:27018/ ================
Looking up 100 values excluding data column...
++++++++++ Query completed in 0.0130000114441 seconds ++++++++++
Looking up 100 values, full json with data...
++++++++++ Query completed in 2.85100007057 seconds ++++++++++
Looking up all values, excluding data column...
++++++++++ Query completed in 0.0999999046326 seconds for 916 items ++++++++++
Looking up all values, full json with data...
++++++++++ Query completed in 29.2250001431 seconds for 916 items ++++++++++
Проводной тигр:
================ Starting test using mongodb://localhost:27017/ ================
Looking up 100 values excluding mdo column...
++++++++++ Query completed in 0.0120000839233 seconds ++++++++++
Looking up 100 values, full json with data...
++++++++++ Query completed in 2.97799992561 seconds ++++++++++
Looking up all values, excluding data column...
++++++++++ Query completed in 0.0700001716614 seconds for 916 items ++++++++++
Looking up all values, full json with data...
++++++++++ Query completed in 23.8389999866 seconds for 916 items ++++++++++