Делаю кэширование в Node.js коде, то есть сохраняю данные из БД MySql в объекты javascript на время пока ничего не меняется. Данных обычно было не много - десятки строк. Но вот появилась задача сделать тоже самое с миллионом строк.
Возник вопрос не ухудшит ли такое кэширование скорость работы, если выбирать по ключу в объекте javascript вместо аналогичного запроса в БД?
SELECT * FROM map WHERE location = '12345'; (поле location под btree индексом, тип таблицы MyISAM, в таблице миллион записей)
vs
var record = map['12345']; (V8 под Node.js, в объекте миллион значений)
Есть ли разница при выборке одного элемента и пару тысяч элементов?
Зачем менять шило на мыло? Попробуйте поставить hash индекс в базе и разогрейте её, тогда данные будут лежать в памяти и скорость доступа O(1), то есть не хуже вашего Node.JS и редиса.