6 ответов

  • 2
    dez 19 апреля 2018 10:57 #

    Вам нужно ускорить весь сайт, а не поиск. Страницы открываются по 5 секунд, это критично много. Проблема в долгом ответе сервера.

    • +2

      Если вам нужно ускорить именно поиск, то смотрите в сторону Sphinx, ElasticSearch, Solr/Lucene. Малой кровью тут обойтись не получится, придется написать код и настроить софт.

      Быстрый поиск по 400 000 товарам на MySQL вряд ли возможен, учитывая то, что он генерирует табличку с на порядок бОльшим количеством записей, по которой идет поиск.

      Если хотите ускорить сайт, то при таком количестве товаров целесообразно вынести саму базу на отдельный хост, чтобы не делить I/O с PHP и другими приложениями.

      Также посоветовал бы уйти от Apache в сторону nginx, и обновить версию PHP, хотя бы до 7.0. Так сайту будет легче дышать.

      Это самое первое, что нужно предпринять, чтобы сайт стал работать шустрее.

  • 1
    replicant 20 апреля 2018 00:24 #

    Все зависит от реализации алгоритма поиска. У меня как-то была задача поиска по MySQL базе с 6+ млн строк в таблице. Поиск работал за доли секунды. Писалось только это на perl, т.к. так было надо. Поэтому 400к - это семечки, но, наверное, не для того алгоритма, который заложен в движке.

    Реализация подобного быстрого поиска мне видится в следующем свете:
    - отдельный мускуль-сервер с хорошими ттх (нормальные проекты никогда не сидят в одной "коробке")
    - определение и сужение зоны поиска до необходимого минимума (допустим ищем только product.name и точка)
    - создание отдельной таблицы с проверкой её актуальности по крону раз в сутки и/или в ручном режиме с примерно такой структурой product.id, product.name, product.url и запуск своего алгоритма поиска в этой таблице, чтобы не дергать основу постоянно поисковыми запросами
    - интеграция поисковой формы, работающей с отдельным алгоритмом, во фронтенд с выдачей результатов из легкой таблицы

    Для этих целей наверное стоит найти разработчика и скормить ему ТЗ.

  • 1
    Александр 23 апреля 2018 13:47 #

    Посоветуйте, к кому можно обратиться?

  • 1
    Demon13 22 ноября 2018 15:42 #

    судя по всему проблему еще не решили до конца?

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите