|
0 / 0 / 2
Регистрация: 21.02.2013
Сообщений: 118
|
||||||
Кеширование результатов sql запроса в файл28.10.2016, 05:51. Показов 2245. Ответов 30
Метки нет (Все метки)
Доброго времени суток!
Имеется интернет магазин. На каждой страничке его выскакивает баннер с десятью разными товарами (взятых из БД). То есть листая страницы, каждый пользователь делает запрос в БД. Если пользователей сотни-нагрузка на сервер возрастает с 6% до 50%. Хостинг виртуальный. Хостер матерится уже. Решил закэшировать результаты запроса в файл.
sql_fetchrow?Может есть какое другое решение? Голову ломаю вторую неделю ![]() ps такое решение взято отсюда: Кликните здесь для просмотра всего текста
0
|
||||||
| 28.10.2016, 05:51 | |
|
Ответы с готовыми решениями:
30
Кеширование запроса как сделать?
Склейка результатов запроса |
|
936 / 693 / 236
Регистрация: 01.02.2015
Сообщений: 1,848
|
|
| 29.10.2016, 11:25 | |
|
kupidon, выводите не случайные, а продвигаемые(заранее подготовленные)
кто знает что они случайные? подготовили несколько наборов готовых и выводим из них
1
|
|
|
0 / 0 / 2
Регистрация: 21.02.2013
Сообщений: 118
|
|
| 29.10.2016, 13:04 [ТС] | |
|
можно ли как-то сгруппировать по 100 штук id и вывести по одной из каждой группы? результат запроса уже в сто раз меньше получится
как составить такой запрос?
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 29.10.2016, 13:23 | |
|
Да просто получите количество записей, затем на PHP генерируйте число от 1 до N. После чего составляйте запрос и выбирайте записи. Правда при таком подходе куча UNION получится. Зато быстро, по сравнению ORDER BY RAND().
0
|
|
|
0 / 0 / 2
Регистрация: 21.02.2013
Сообщений: 118
|
|
| 29.10.2016, 13:38 [ТС] | |
|
я сейчас так почти делаю.
1. выбираю запросом все требуемые записи (вот тут уже долго) 2. Формирую массив из всех получившихся ид 3. делаю новый массив из десяти рандомных записей предыдущего массива 4. потом уже беру из базы требуемые конкретные 10 id , c помощью IN() но на пункте 1 уже долгий запрос а просто сделать 10раз рандом выбор от 1 до Numrows не могу, так как есть пропуски в id в результате или я не так Вас понял?
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|||||||||||
| 29.10.2016, 13:44 | |||||||||||
|
Не поняли. Не надо получать все записи, надо получить лишь их количество:
70.Теперь делаем:
1
|
|||||||||||
|
0 / 0 / 2
Регистрация: 21.02.2013
Сообщений: 118
|
|
| 29.10.2016, 21:34 [ТС] | |
|
интересно. спасибо за идею. попробую чуть позже, отпишусь
Добавлено через 7 часов 39 минут Сделал так: Вкратце: создал доп таблицу в бд сделал доп столбец с автоинкремент. Скопировал туда результаты моего запроса (примерно 190000 строк) . Теперь у меня появился столбец с цифрами от 1 до N без пробелов. Выбираю на пхп рандомные 10 чисел и потом уже из них формирую баннер. Один раз в сутки удаляю таблицу и копирую туда новые данные. В итоге сам скрипт работает меньше 0.5 секунды (вместе с отображением баннера), а ночное обновление вспомогательной таблицы занимает примерно 15-17 секунд. Но это того стоит. Большое спасибо за помощь, взял ваши примеры для другого скрипта.
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
||||||
| 30.10.2016, 22:11 | ||||||
1
|
||||||
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 31.10.2016, 07:58 | |
|
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 31.10.2016, 07:59 | |
|
mt_rand()
0
|
|
|
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
|
|
| 31.10.2016, 08:39 | |
|
А если не будет записей с такими ID?
0
|
|
|
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,230
|
|
| 31.10.2016, 08:40 | |
|
сделайте запрос на 30, оставьте 10
2 запроса на крайняк, если 1й не добрал это всё-равно будет в разы быстрее, чем RAND()
0
|
|
| 31.10.2016, 08:40 | |
|
Помогаю со студенческими работами здесь
31
Передача результатов запроса из бд в POST Чтение переменных из результатов запроса Вывод результатов поискового запроса Вывод результатов запроса в таблицу, в шаблон Получить ассоциативный массив из результатов запроса к БД MSSQL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|