- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Что показывает PHPMyadmin?Текущее состояние MySQL
полный вывод.
Текущее состояние MySQL
server_status.php
ТС, ответьте, плиз, на пару вопросов:
1. Сколько времени у Вас выполняется такой запрос:
SELECT `id` FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30
2. Как часто в этой таблице изменяются данные ?
Кстати яндекс и гугл не выводит более 1000 результатов в выдаче, вероятно потому что не смогли придумать как эффективно делать подобные запросы.
ТС, ответьте, плиз, на пару вопросов:
1. Сколько времени у Вас выполняется такой запрос:
SELECT `id` FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30
2. Как часто в этой таблице изменяются данные ?
Кстати яндекс и гугл не выводит более 1000 результатов в выдаче, вероятно потому что не смогли придумать как эффективно делать подобные запросы.
Я уже всё писал:
1. /ru/forum/comment/10081908
2. 1 раз в час
Я уже всё писал:
1. /ru/forum/comment/10081908
2. 1 раз в час
То с этим кодом проблема решена и тема топика исчерпана ?
/ru/forum/comment/10080098
Напишу еще код, который должен быстро к-во ИД в рубриках посчитать, может пригодится.
SELECT `cat` , COUNT( `cat` )
FROM `cms_freepages`
GROUP BY `cat`
LIMIT 0 , 30
Всё упёрлось сейчас в нагрузку на диск. С сервера убираются некоторые проекты на другой. Код прилично помогает, но просто диску пока не до мускуля и поэтому идут тормоза.
Но в любом случаи это быстрее, чем LIMIT, ещё надо проверить вложенный запросы, когда всё уляжется.
Можно расписать, что такое "id>" и откуда я его возьму? :)
ваш оригинальный селект
вот в нем вы откуда-то берете цифирьки для LIMIT? ну вот фактически точно так же, но используйте ваш id. для первой страницы будет where id > 0 limit 30 , в пхп определили макс id среди этих 30 строчках и передаете его когда юзверь хочет вторую страницу посмотреть и т.д.
это уже 2 раза предлагалось еще до меня
Он для ВСЕХ записей, как я ID то найду всех в cat=2? ещё и нужные ID возьму?
Для этого уже netwind предложил вложенный запрос, он выполняется отлично. Прочитайте верхний пост мой :)
вот в нем вы откуда-то берете цифирьки для LIMIT?
Не удержался, сори. В limit не id а порядковый номер записи.
О, я еще вариант придумал:
Раз в час делать запрос вида
SELECT `id`,`cat` FROM `cms_freepages`
Потом до результата применить php функцию rsort(); по ИД
Потом создать php массив ИД для каждой категории
дальше для каждого массива применить функцию array_chunk(рез, 25);
и занести результаты в таблицу с полями:
id cat page listdi , где в поле listdi будет строчкой список ИД статей, которые должны отображаться на странице с соответствующим номером соответствующей категории.
Дальше, когда пользователь вызывает 100-ю страницу со 2-й категорией делаются быстрые запросы к базе, и получается результат.
Минусы - морока с созданием новой таблицы.
Индексы есть и на id и на cat
Тип базы: myisam
Запросы в основном:
SELECT * FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30
Чем дальше "в лес" т.е. листаем глубже, сервер просто умирает на таком запросе и выполняется по 15 секунд. А как боты набегут и давать клацать по 10 таких запросов.
Решил пока, не давать им бегать дальше 10 страницы, НО... не ну реально что-ли нету никаких вариантов по решению такой задачи?!
Много чего конечно читал, но варианты:
1. Как сделал, ограничить выборку
2. Всё загнать в память (увы, у меня нет столько чтобы держать БД всю)
3. Жестаки новые SSD, чтобы всё летало (увы, нету на серваке)
explain plan SELECT * FROM `cms_freepages` WHERE cat=2 ORDER id DESC LIMIT 37710, 30 в студию