Я строю сайт для небольшой коллекции родителей в частном детском саду. Одна из желаемых функций сайта - иметь календарь, в котором вы можете выбрать, в какие дни вы можете нести ответственность за очистку локалей. Теперь я создал рабочий календарь. Я нашел простой скрипт онлайн, который я изменил, чтобы соответствовать нашей цели. Технически это работает хорошо, но я начинаю задаваться вопросом, действительно ли мне нужно изменить способ извлечения информации из базы данных.Слишком много вызовов SQL при загрузке страницы?
Календарь представлен ежемесячно и рисуется как таблица с использованием цикла for. Это означает, что указанный цикл for-loop запускается 28-31 раза каждый раз, когда страница загружается в зависимости от месяца. Чтобы представить, кто несет ответственность за очистку каждый день, я добавил вызов в базу данных MySQL, где хранится день очистки каждого члена. Псевдокод выглядит следующим образом, упрощается:
Draw table month
for day=start_of_month to day=end_ofmonth
type day
select member from cleaning_schedule where picked_day=day
type member
Это означает, что каждая перезагрузка страницы делает по крайней мере 28 ВЫБРАТЬ вызовы в базу данных и мне кажется неэффективной, и что один может быть восприимчив к DDOS- атака. Есть ли более эффективный способ получить тот же результат? Там гораздо более сложные календари бронирования, как они справляются с этим?
Но если кеш, скажем, июнь, а затем я перехожу на июль, он должен снова сделать весь shebang, но я получаю ваш дрейф. – Sandokan
В кэше запросов может быть более одного (по сути: много) запросов - см. Документы MySQL .. о, дерьмо, они прямо сейчас! –
Опираясь на MySQL для кэширования ваших данных, как правило, не является хорошей практикой. –