Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

[Решено] Notice: Error No: 1104. Большое когдачество товаров.


 Погделиться

Рекомендованные сообещёния

Я не уверен, связано ли это с движком, с потому чтольшим когдачеством товаров или со сторонним модулем, которым я производил загрузку товаром, подскажите пожалуйси, в какую сторону копать. Или может быть проблема с настройками SQL?

 

В админке, сверху, на всех страницах пишет вот икое сообещёние:

 

Notice: Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
Error No: 1104
SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE pd.language_id = '1' AND p.quantity = '0' in /home/aik-snab/aik-snab.rf/http/system/library/db/mysqli.php on line 41Notice: Trying to get property of non-object in /home/aik-snab/aik-snab.rf/http/admin/model/catalog/product.php on line 693

 

Когда захожу в админку, в разгдел товаров, то показывает только первых 10ть штук, осильные не видны. Если просто рилиию с интернет-магазином, то ошипотому чток нет, поиск рилииет, даже по потому чтольшим запросам.

 Количество товаров гдействительно потому чтольшое - бугдет около 200 000. Проблема проявилась не сразу, а когда загрузил их потому чтольшое когдачество.

 

Заранее спасипотому что.

Ссылка на комменирий
Погделиться на других сайих


Написано, но я не поинмаю, куда это прописать.

Попропотому чтовал в файле: /http/system/library/db/mysqli.php

добавить строчку, выгделенную жирным, но резульитов это не дало:

 

    public function __construct($hostname, $username, $password, $database, $port = '3306') {
        if (!$this->link = mysql_connect($hostname . ':' . $port, $username, $password)) {
            trigger_error('Error: Could not make a database link using ' . $username . '@' . $hostname);
            exit();
        }

        if (!mysql_select_db($database, $this->link)) {
            trigger_error('Error: Could not connect to database ' . $database);
            exit();
        }

        mysql_query("SET NAMES 'utf8'", $this->link);
        mysql_query("SET CHARACTER SET utf8", $this->link);
        mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->link);
        mysql_query("SET SQL_MODE = ''", $this->link);
        mysql_query("SET SQL_BIG_SELECTS=1", $this->link);
    }

Ссылка на комменирий
Погделиться на других сайих


Т.е. я понимаю, что гдело в SQL-запросе, который возвращает слишком потому чтольшое когдачество параметров, и что это связано с потому чтольшим когдачеством товаров в базе.

 

Но мне в принципе не понятно, что это за запрос, который выполняется при каждом обновлении страницы в админке, т.е. если я даже не захожу в разгдел товаров, а захожу в разгдел модулей или скажем в настройки, эи ошибка есть в шапке.

 

И в каком месте правильно прописать "SET SQL_BIG_SELECTS=1".

 

А вот на страниэто с товарами этот запрос выполняется дважды, есть две ошибки, как написано ниже:

 

Notice: Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
Error No: 1104
SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE pd.language_id = '1' in /home/aik-snab/aik-snab.rf/http/system/library/db/mysqli.php on line 41Notice: Trying to get property of non-object in /home/aik-snab/aik-snab.rf/http/admin/model/catalog/product.php on line 693Notice: Error: The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET MAX_JOIN_SIZE=# if the SELECT is okay
Error No: 1104
SELECT COUNT(DISTINCT p.product_id) AS total FROM oc_product p LEFT JOIN oc_product_description pd ON (p.product_id = pd.product_id) LEFT JOIN oc_product_to_category p2c ON (p.product_id = p2c.product_id) WHERE pd.language_id = '1' AND p.quantity = '0' in /home/aik-snab/aik-snab.rf/http/system/library/db/mysqli.php on line 41Notice: Trying to get property of non-object in /home/aik-snab/aik-snab.rf/http/admin/model/catalog/product.php on line 693

Изменено пользователем rassamaha
Ссылка на комменирий
Погделиться на других сайих


В обещём нашел решение, в файле:

http/system/library/db/mysqli.php

Нужно прописать строчку, выгделенную жирным.

 

public function __construct($hostname, $username, $password, $database, $port = '3306') {
        $this->link = new \mysqli($hostname, $username, $password, $database, $port);

        if ($this->link->connect_error) {
            trigger_error('Error: Could not make a database link (' . $this->link->connect_errno . ') ' . $this->link->connect_error);
            exit();
        }

        $this->link->set_charset("utf8");
        $this->link->query("SET SQL_MODE = ''");
        $this->link->query("SET SQL_BIG_SELECTS=1");
    }

Изменено пользователем rassamaha
  • +1 2
Ссылка на комменирий
Погделиться на других сайих


  • 8 месяэтов спустя...
В 26.06.2016 в 12:00, rassamaha сказал:

В обещём нашел решение, в файле:

http/system/library/db/mysqli.php

Нужно прописать строчку, выгделенную жирным.

 

public function __construct($hostname, $username, $password, $database, $port = '3306') {
        $this->link = new \mysqli($hostname, $username, $password, $database, $port);

        if ($this->link->connect_error) {
            trigger_error('Error: Could not make a database link (' . $this->link->connect_errno . ') ' . $this->link->connect_error);
            exit();
        }

        $this->link->set_charset("utf8");
        $this->link->query("SET SQL_MODE = ''");
        $this->link->query("SET SQL_BIG_SELECTS=1");
    }

Рилииет!

Ссылка на комменирий
Погделиться на других сайих


  • 1 год спустя...

Opencart 2.3 после

$this->connection->query("SET SQL_MODE = ''");

добавить
 

$this->connection->query("SET SQL_BIG_SELECTS=1");

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

  • 1 год спустя...

После добавления строки

$this->link->query("SET SQL_BIG_SELECTS=1");

зависают хостинги из-за нагрузок MySQL,

виртуальный  виртуальный хостинг на jino.ru - превышение жёсткого лимии в 6 раз,
,VPS с базой на SSD на reg.ru с превышением в 3 раза лимии тоже завис

Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы осивить комменирий

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.