Мы создаем решение для кэширования наших пользовательских данных.В настоящее время данные хранятся в sybase и распределяются по 5-6 таблицам, но служба запросов построена на них с использованием hibernate, и мы получаем очень низкую производительность.Чтобы загрузить данные в кеш, потребуется от 10 до 15 часов.
Итак, мы решили создать денормализованную таблицу из 50–60 столбцов и 5-миллиметровых строк в другую реляционную базу данных (UDB), сначала заполнить эту таблицу, а затем заполнить кэш из новой денормализованной таблицы, используя время JDBC.построить нам кеш ниже.Это дает нам гораздо лучшую производительность, и теперь мы можем построить кеш примерно за час, но это также не соответствует нашему требованию построения кеша за 5 минут.Денормированная таблица запрашивается с использованием следующего запроса
select * from users where user id in (...)
Здесь идентификатор пользователя является первичным ключом.Мы также попытались выполнить запрос
select * from user where user_location in (...)
и создали неуникальный индекс местоположения, но это также не помогло.
Так есть ли способ сделать запросы быстрее.Если нет, то мы также открыты для рассмотрения некоторых решений NOSQL.
Какое решение NOSQL подойдет для наших нужд.Помимо большого стола, мы будем ежедневно делать около 1 мм обновлений на столе.
Я читал о mongo db, и кажется, что он может работать, но никто не опубликовал никакого опыта с mongo db с таким количеством строк и таким количеством ежедневных обновлений.
Пожалуйста, дайте нам знать ваши мысли.