- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Запрос дергает последние комменты из каждой темы (отдельно для тем про фото, про объекты в каталоге и про новости):
Все более-менее нормально ворочается до тех пор, пока не проставляю дополнительное условие — чтобы поле Comment1 не было бы пустым:
После чего наступает адов ад — или вывод данных идет крайне долго, или вообще не успевает и вываливается в 504.
Поле Comment1 — text, без отдельных ограничений по размеру. Количество строк в таблице — порядка 6000. Хостинг — обычный виртуальный.
Граждане, можно тут чего-нить соптимизировать или только на бОльшие мощи переехать?..
З.Ы. Причем если проставить условие AND Comment != '' вместо AND Comment1 != '', то все бегает гораздо быстрее. Впрочем, между полями есть различие: Comment почти все заполнены, а Comment1 почти все пустые.
Корректнее будет проверять на пустоту так: Comment1 is not null
Также попробуйте посмотреть, что выдаёт EXPLAIN. Возможно, неправильно определяются индексы при поиске.
Спасибо за отзывы. Сегодня проверю и отпишусь дополнительно.
Запрос работает явно с избыточными данными.
Есть острое ощущение, что будет намного быстрее, если Вы сделаете 3 отдельных запроса (в случае если структуру БД нельзя менять).
И однозначно быстрее, если Вы будете хранить метку о том, какой коммент последний и обновлять ее при постинге коммента.
Если непременно хочется одним запросом, посмотрите тут первый вариант.
Попробуйте использовать не Comment1, а
s2.Comment1
s3.Comment1
s4.Comment1
edogs, спасибо за наводку по поводу метки последнего сообщения. Структура БД вполне поддается редактирования, так что, думаю, реализую такой вариант.
gormarket, спасибо за подсказку, пока метки нет Ваш вариант работает гораздо быстрее, чем было до него.
UP: Блин, рано радовался. добавка s2.Comment1 прироста сокрости не дает, глюканул я...
Asar, уберите из запроса
"AND s1.Photo_Id = s2.Photo_Id"
"AND s1.Object_Id = s3.Object_Id"
"AND s1.Topic_Id = s4.Topic_Id"
потому что при наличии этого условия у Вас находится максимум для каждой строки в таблице s1 и фактически в результирующую выборку попадают все комменты, а не только последние. И хоть какой-то результат Вы получаете только благодаря "ORDER BY DaTime DESC LIMIT 50".
Попробуете сделать Ваш запрос через phpmyadmin и Вы это увидите.
А добавление "AND Comment1 != ''" просто утяжеляет и без того тяжелый запрос!
Спасибо всем за комменты. Чуть дописал скрипты, которые обрабатывают новые комменты, обработал все старые комменты, и теперь везде стоят метки у последних комментариев, как и предложил edogs. Теперь все летает. Видать старый вариант запроса и правда чрезмерно загруженный был.
Количество строк в таблице — порядка 6000. Хостинг — обычный виртуальный.
отсутствие индексов по полям, которые используются в предикатах ?
отсутствие индексов по полям, которые используются в предикатах ?
Ctype, DaTime и Topic_Id/Photo_Id/Object_Id с индексами. Куда уж еще-то?..