- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
в последнее время сайт периодически висит лишь по причине того, что при поиске на сайте очень много запросов вида
эти запросы длятся зачастую по 15 секунд и очень подгружают сервер. я так понял, что эти запросы генерируются когда пользователь осуществляет поиск по сайту (не совсем в этом уверен)
движок DLE
как можно попытаться выйти из сложившейся ситуации?..
этот запрос генерируется блоком - последние новости
этот запрос генерируется блоком - последние новости
о, спасибо.
а не подскажите еще тогда решение проблемы.. только если отключить модуль последних новостей или же есть какие-либо хаки?
zkolobov добавил 29.10.2010 в 01:39
Str01tel, блок последние новости это Вы имели ввиду вывод самых рейтинговых статей на сайте?
блок последние новости это Вы имели ввиду вывод самых рейтинговых статей на сайте?
немного опечатался - это блок "похожих" новостей
нашел код, который генерирует данные запросы. файл engene\modules\show.full.php
$db->query( "SELECT id, title, date, category, alt_name, flag, news_read FROM " . PREFIX . "_post WHERE MATCH (title, short_story, full_story, xfields) AGAINST ('$body') AND id != " . $row['id'] . " AND approve='1'" . $where_date . " LIMIT " . $config['related_number'] );
можно ли как-нить подпилить этот запрос, чтобы он отрабатывал хоть чутка быстрее?..
Для начала определитесь, по каким полям хотите искать в базе.
думаю, что только title будет достаточно, как считаете?
zkolobov добавил 29.10.2010 в 13:22
попытался вместо
AGAINST ('$body')
вставить
AGAINST ('$title')
получилась шляпа.. выдает либо очень мало новостей либо совсем не находит..
вставлял после '$title' in boolean mode - такая же шляпа.. :(
что делать?
Текст новости ведь не меняется раз в секунду?
Нормальный движок должен только при обновлении новостей обновлять характеристики похожести.
Хоть с этих DLE и спрос небольшой, но ведь есть куда оптимизировать логику.
В качестве наименьшего возможного воздействия на DLE, можно хранить похожие новости в специальной таблице-кеше, содержащей отношения между новостями.
и какой там обычно текст?
Если там встречаются часто используемые слова, то их можно внести в специальный список стоп-слов. Индекс станет меньше, а скорость поиска больше. Поиск по таким словам не выдаст ничего. Подробности в документации к утилите myisam_ftdump.
Конечно, если у вас поиск 15 секунд идет, то и дамп займет приличное время.
Очень правильный вопрос.
Дело в том что поиск в DLE осуществляется по контексту, т.е. ищутся все записи на предмет словосочетания - поисковой фразы.
Этот запрос не оптимизируется в MySQL так как поиск происходит не по индексу, а тупо перебором в ЛОБ.
Индекс по полю Title даже если и создан, то он не задействован при таком запросе.
И неправильный ответ.
Нельзя выполнить MATCH ..AGAINST, если полнотекстовый индекс по требуемым полям не создан. Будет ошибка Can't find FULLTEXT index matching the column list.
Значит индекс в DLE создан на все поля. Придумай другую сказочку.
websin2011, я нашел DLE. полнотекстовый индекс там создан все 4 поля, по которым делается поиск.
все, что я предположил оказалось правдой.
Тебе я порекомендую изучать mysql. Многие вещи там сделаны вопреки реляционной алгебре.
И текстовый поиск и создание индексов на memo удивительным образом работают в mysql.
websin2011, водка - плохо. особенно до 5 утра.
обязательно помогу вам с репутацией чуть попозже.