Приветы.
У меня в общем сделан кэшер запросов к базе данных. Он стаскивает результат запроса в JSON и в последующем не выполняет запрос к базе, а вытаскивает данные из кэша. Кэш бьеются на чанки и шифруется.
Заметил, что если сделать SELECT *, то при большом количестве данных в БД такой запрос даже из кэша жрет много памяти.
Хочу сделать двойную БД. Одна часть работает на базе статики и представляет собой переодический дамп из реальной релятивной БД, а вторая работает как обычная MySQL.
Например для обновления сервера пока БД не доступна можно работать и накапливать транзакцию на статике, а как сервер обновиться - запускать коммит.
Проблем с этим нет. Не так трудно написать свой NoSQL для framework и использовать файлы вместо БД, но встает вопрос при тысячах данных в БД. Например 10 000 строк по 1кб жрут 15Mb на запрос типа SELECT * FROM TABLE.
Реализованы ли указатели в таких NoSQL, как Mongom, и как примерно они работают?
Например курсорами в MySQL можно шифтить запрос и получать что-то вроде пагинации. Как такое сделать для JSON поиска? Предположим, что мы не знаем как работает MySQL, но есть некий алгоритм оптимизации памяти, который выбрасывает из системы данные, которые прошли отбор и не соответствуют условиям запроса.
Я думаю всерьез написать свой NoSQL движек и мне пока еще необходима MySQL. Но, если получится сделать индексы и курсоры на JSON - я смогу полностью слезти с релятивных баз данных и предложить более усовершенствованное и скоростное решение для хранения информации.
Может кто знает что посмотреть на тему курсоров и индексов или подскажет в какую сторону работать?