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

В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Ого, это такой тренд нынче. Зайти кинуть умную фразу, чтобы все охали и ахали.
Лучше рукоплещите 😂
Избыточность, конечно же, уже побежал переписывать структуру и CMS для избыточности, которая никому нафиг не нужна. Аха?
Ну если у вас такой код что при добавлении одного поля в таблицу, и по одному запросу на добавление и удаление новости, надо переписывать структуру и CMS, то грош цена и коду и CMS 😂
А если индекс cat сделать составным (`cat`, `id`) ?
Запрос
SELECT * FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30
должен выполнятся быстрее чем выборка всех id
И менять в CMS ни чего не придется.
А если индекс cat сделать составным (`cat`, `id`) ?
/ru/forum/comment/10096457
Это мысли, которые хранятся, чисто в вашей голове и нам трудно понять их. А то, что вы без кода тут начинаете оперировать ими, как чем-то уникальным и лучшим, выглядит по крайней мере глупо.
может такой запрос даст лучше результаты
Это мысли, которые хранятся, чисто в вашей голове и нам трудно понять их. А то, что вы без кода тут начинаете оперировать ими, как чем-то уникальным и лучшим, выглядит по крайней мере глупо.
Вам надо выбирать записи, но не зная позиции вы выбираете нужное количество с нужного места, используя limit.
А если бы у вас было еще одно поле где новости были пронумерованы в порядке возрастания для каждой категории. То вы бы сразу выбирали бы новости по номеру в данной категории. При этом limit абсолютно ненужен, сортировка по id тоже.
По сути это напоминает то-же автоинкремент, только для категории, и позицию проставляете вы при добавлении новости а не база. Только единственное отличие что при удалении новости у вас не должно быть разрывов нумерации.
а это решается при удалении новости одним запросом, примерно такого вида
UPDATE table SET pos=pos-1 WHERE cat=number AND id>del_id
Fearful, ну вот видите совсем другой разговор :)
Только вот вы уверены, что это будет быстрее, тесты проводили?
не забывайте, что нам нужен в любом случаи полный запрос, чтобы узнать количество записей для отображения листинга.
Fearful, ну вот видите совсем другой разговор :)
Только вот вы уверены, что это будет быстрее, тесты проводили?
Будет однозначно, потому что запрос можно представить в виде
SELECT * FROM table WHERE cat=number AND pos IN (...)
а тут нет ни лимита, ни сортировки, потому быстрее 100% будет
не забывайте, что нам нужен в любом случаи полный запрос, чтобы узнать количество записей для отображения листинга.
Так смотрите, у вас есть номер последней новости в данной категории. Значит если у вас 30 новостей на странице и вам надо выбрать например новости на 30 странице.
То вы у вас получается
SELECT * FROM table WHERE cat=number AND (pos<=A AND pos>B)
где
A = номер_последней_новости_категории - (страница-1)*количество_новостей_на_странице
B = номер_последней_новости_категории - страница*количество_новостей_на_странице
Так как количество новостей на странице не сильно велико, то запрос легко превратить в
SELECT * FROM table WHERE cat=number AND pos IN (...)
Причем если новость удалять раньше чем пересчитывать номера новостей для категории, то можно еще и создать уникальный составной индекс для сat и pos.
Это как я его узнаю? опять же select с MAX или ORDER BY или COUNT
SELECT * FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30
Что-то я не понял в чем проблема.
У вас id не по порядку идут в базе? Зачем обратная сортировка для пагинации?
Лимит без сортировки летает без разницы "Чем дальше в лес", может проблема решается алгоритмически?