Я новичок здесь, и у меня есть проект, в котором у меня проблема с производительностью, которую, кажется, трудно исправить Я создал поиск объектов, которые имеют доступность, означает очень простую структуру:
ObjectID | Date | Number of available objects
---------------------------------------------
Object1 | 01.01.2019 | 1
Object1 | 02.01.2019 | 1
Object1 | 03.01.2019 | 0
Object1 | 04.01.2019 | 1
Object1 | 05.01.2019 | 1
Object2 | 01.01.2019 | 1
Object2 | 02.01.2019 | 1
Object2 | 03.01.2019 | 0
Object2 | 04.01.2019 | 1
Object2 | 05.01.2019 | 1
Я работаю с MySQL и PHP
Типичный запрос:
Какие объекты доступны в период с 01.01.2019 по 28.02.2019 10 дней подряд.
Нетрудно заставить его работать с mysql, но как только у вас есть более 10 пользователей, использующих функцию поиска, нагрузка на сервер становится чрезвычайно высокой, даже если таблица оптимизирована (индексы и т. Д.). Сервер имеет 2 ядра по 4 ГБ. оперативной памяти.
Я также попытался сохранить в таблице даты, разделенные запятыми для каждого объекта, и позволить приложению искать, но это создает экстремально высокий трафик между приложением и базой данных, что также не является реальным решением.
В общей сложности у нас хранится около 20 000 объектов и доступных для макс. 500 дней, поэтому у нас есть около 10.000.000 наборов данных в моем первом решении.
Кто-нибудь имеет и представляет, какой самый эффективный способ сделать это?
(Как сохранить его для быстрого поиска?)
Для этого проекта я, к сожалению, не могу кэшировать результаты поиска.
Спасибо за вашу помощь и всего наилучшего, Кристоф