|
0 / 0 / 2
Регистрация: 21.02.2013
Сообщений: 118
|
||||||
Кеширование результатов sql запроса в файл28.10.2016, 05:51. Показов 2269. Ответов 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 | |
|
Передача результатов запроса из бд в POST Чтение переменных из результатов запроса Вывод результатов поискового запроса Вывод результатов запроса в таблицу, в шаблон Получить ассоциативный массив из результатов запроса к БД MSSQL Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|