Контакты

Наибольший вклад в теги

Все теги (25)

Лучшие ответы пользователя

Все ответы (18)
  • Как ускорить SQL запрос?

    @eugeneledenev Автор вопроса
    Проблем несколько.
    1. не работают одновременно индексы текстовые (model+sku) и числовые (status)
    SELECT SQL_NO_CACHE p.product_id
    FROM oc_product p 
    WHERE p.status = '1' AND ( p.model = 'ao' OR p.sku = 'ao' )

    0.26 сек срабатывает только индекс по status

    SELECT SQL_NO_CACHE p.product_id
    FROM oc_product p LEFT JOIN oc_product p2 ON (p.product_id=p2.product_id)
    WHERE p.status = '1' AND ( p2.model = 'ao' OR p2.sku = 'ao' )

    0 сек отрабатываю оба индекса

    2. Как писали выше наличие LCASE убивает индекс.
    SELECT SQL_NO_CACHE p.product_id
    FROM oc_product p LEFT JOIN oc_product p2 ON (p.product_id=p2.product_id)
    WHERE p.status = '1' AND ( LCASE(p2.model) = 'ao' OR LCASE(p2.sku) = 'ao' )

    0.60 сек

    В итоге запрос сильно усложнился. Время выполнения упало до 0,19 сек. (в 4 раза)
    SELECT SQL_NO_CACHE SQL_CALC_FOUND_ROWS p3.product_id, NULL AS rating, NULL AS discount, NULL AS special 
    FROM 
    
     (SELECT p.product_id
     FROM oc_product p 
     LEFT JOIN oc_product p2 ON (p.product_id=p2.product_id) 
     WHERE p.status = '1' AND ( p2.model = 'ao' OR p2.sku = 'ao' ) 
     UNION
     SELECT p.product_id
     FROM oc_product p 
     LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) 
     WHERE p.status = '1' AND ( pd.name LIKE '%ao%' OR pd.tag LIKE '%ao%') ) as t1
    
    LEFT JOIN oc_product p3 ON (t1.product_id=p3.product_id)
    LEFT JOIN oc_product_description pd ON (p3.product_id = pd.product_id)
    GROUP BY p3.product_id 
    ORDER BY (p3.price=0 OR p3.price >= 7000000), p3.price DESC, LCASE(pd.name) DESC 
    LIMIT 0,20
    Ответ написан
    Комментировать
  • Как решить большую нагрузку WordPress поисковыми ботами? Слабый хостинг?

    @eugeneledenev
    Я прибил у себя ботов(в разы снизил нагрузку) так: в .htaccess
    #kill bots
    RewriteCond %{HTTP_USER_AGENT} AhrefsBot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} MJ12bot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} Detectify
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} dotbot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} Riddler
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} SemrushBot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} LinkpadBot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} BLEXBot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} FlipboardProxy
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} aiHitBot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} trovitBot
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} python-requests
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} ltx71
    RewriteRule (.*) - [F,L]
    RewriteCond %{HTTP_USER_AGENT} MegaIndex.ru
    RewriteRule (.*) - [F,L]

    Если вас заваливают яндекс и гугл, то однозначно по рецепту VVB копать с профайлером. Если переедете на VPS, то через команду top будет понятно у вас перегруз по запросам к БД или слишком много одновременных заходов.
    Ответ написан
    Комментировать
  • Как исправить такую ошибку OpenCart?

    @eugeneledenev
    Не может загрузить контроллер payment/transfer_plus.1/orderAction!
    Скорее всего загрузили xml файл он либо с ошибкой либо конфликтует и как итог формируется новый system/engine/controller.php в кеше vqmod/vqcache/vq2-system_engine_controller.php с ошибкой.
    убрать xml файл который косячит, затем найти программиста который сделает чтобы все работало.
    Либо если шарите, то смотрите что в vqmod/vqcache/vq2-system_engine_controller.php on line 68 и исходя из ошибки там правьте xml
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (56)