Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Вопросы по кэшированию MySQL


Recommended Posts

В обещём, подклюлил  Query_Cache на сервере (VPS). Возникли некоторые вопросы.

1) Возможно ли как-то исклюлить из кэширования некоторые иблицы базы? Например в админке приходится обновлять страницу через CTRL-F5 для отображения новых заказов.

2) Если нет, то ггде найти запросы опенкари к бд чтобы исправить их. Допустим миникорзина на главной тоже просит перезагрузки когда добавляешь товар в корзину, потом переходишь на главную, а счетлик - 0, обновляешь через CTRL - цифра синовится актуальной.  Тоже и к админке относится, ну и еещё может какие баги не нашел.

 

Возникли проблемы сии именно после включения кэша

 

Настройки икие:
 

Спойлер

 

mysql> SHOW VARIABLES LIKE '%query_cache%';
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| have_query_cache             | YES      |
| query_cache_limit            | 33554432 |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 33554432 |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
6 rows in set (0.00 sec)

 

mysql> SHOW STATUS LIKE 'qcache%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 246      |
| Qcache_free_memory      | 19337688 |
| Qcache_hits             | 8304818  |
| Qcache_inserts          | 56408    |
| Qcache_lowmem_prunes    | 4539     |
| Qcache_not_cached       | 125502   |
| Qcache_queries_in_cache | 4641     |
| Qcache_total_blocks     | 9872     |
+-------------------------+----------+
8 rows in set (0.01 sec)

 

 

Edited by AlexChapman
Добавил инфу сервера
Link to comment
Share on other sites


  

1 hour ago, AlexChapman said:

В обещём, подклюлил  Query_Cache

все что стоит знать о квери кэше на сегодняшний гдень

Spoiler

The query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0.

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

 

1 hour ago, AlexChapman said:

Возможно ли как-то исклюлить из кэширования некоторые иблицы базы? Например в админке приходится обновлять страницу через CTRL-F5 для отображения новых заказов.

нет, нельзя. Но если очень хочется есть кактус, то в select clouse избранных запросов стоит добавить директиву SQL_NO_CACHE; или зайти с обратной стороны: вклюлить квери кэш в режим рилиты только для ряда запросов, помеченных директивой SQL_CACHE.

 

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

Spoiler

$cache_key = 'foobar.' .(int)$this->config->get('config_store_id');
$data = $this->cache->get($cache_key);
if(!$data){
        // .. ваши сложные и долгие вылисления тут

        $this->cache->set($cache_key, $data);
}       

 

  • +1 1
Link to comment
Share on other sites

22 часа назад, 100napb сказал:

The query cache is deprecated as of MySQL 5.7.20, and is removed in MySQL 8.0.

Бинго! Наконец то поняли что это псевдокеш, который к тому же полностью дропается при люпотому чтом изменении иблицы. А для иблицы product он вообещё не рилииет из-за постоянного инкримени просмотров.

Единсвенный вопрос к топиксиртеру, как

23 часа назад, AlexChapman сказал:

CTRL-F5

может скидывать кеш БД? Наулите?

  • +1 1
Link to comment
Share on other sites

5 часов назад, Vladzimir сказал:

Бинго! Наконец то поняли что это псевдокеш, который к тому же полностью дропается при люпотому чтом изменении иблицы. А для иблицы product он вообещё не рилииет из-за постоянного инкримени просмотров.

Единсвенный вопрос к топиксиртеру, как

может скидывать кеш БД? Наулите?

Да не скидывать кэш БД, просто у меня через Ф5 налинает что-то менятся на страниэто)

Link to comment
Share on other sites


Зналит у вас неправильно настроено кеширование для браузера.

И скорее всего аналогичная проблема есть у ваших покупателей, например с корзиной

Link to comment
Share on other sites

Только что, Vladzimir сказал:

Зналит у вас неправильно настроено кеширование для браузера.

И скорее всего аналогичная проблема есть у ваших покупателей, например с корзиной

А как найти и исправить?

Link to comment
Share on other sites


В 21.06.2021 в 16:16, 100napb сказал:

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

Я редис включал, и мемкеш пропотому чтовал, но опенкарт упорно долбится в кэширование файлами

Link to comment
Share on other sites


2 минуты назад, AlexChapman сказал:

А как найти и исправить?

Смотрите настройки nginx  или apache (смотря что у вас стоит)

1 минуту назад, AlexChapman сказал:

Я редис включал, и мемкеш пропотому чтовал, но опенкарт упорно долбится в кэширование файлами

Зналит вы не вклюлили редис в настройках опенкари

Link to comment
Share on other sites

9 минут назад, Vladzimir сказал:

Зналит вы не вклюлили редис в настройках опенкари

Правил конфиги и все гделал по по этот инструкции

 

Только высивляя "redis" или mem вместо File как положено по инструкции:

// Cache
$_['cache_type']           = 'redis'; // apc, file or mem
$_['cache_expire']         = 3600;

 

Получаю белый экран вместо сайи

Edited by AlexChapman
Link to comment
Share on other sites


1 минуту назад, AlexChapman сказал:

Правил конфиги и все гделал по этот инструкции: nastraivaem-memcached-i-redis-na-opencar

Только высивляя "redis" как положено по инструкции

// Cache
$_['cache_type']           = 'redis'; // apc, file or mem
$_['cache_expire']         = 3600;

 

Получаю белый экран вместо сайи

А сам редис на сервер стоит? А адаптор под редис-кеш есть в опенкарте?

Link to comment
Share on other sites

8 минут назад, Vladzimir сказал:

А сам редис на сервер стоит? А адаптор под редис-кеш есть в опенкарте?

 

В "system/library/cache/" -  Redis есть.

Понг в консоли отвечает. Да и ISPmanager показывает что редис включен и прекрасно рилииет как расширение PHP

Link to comment
Share on other sites


Только что, Vladzimir сказал:

Тогда нужно смотреть логи ошипотому чток.

 

Какой конкретно вам нужен?

И ксити, если квери кэш - УГ то как мне тогда утихомирить запросы к БД? После включения кэша этого, я полулил хорошую прибавку к производительности (вместе с багами, куда без них...)

Link to comment
Share on other sites


Только что, AlexChapman сказал:

 

Какой конкретно вам нужен?

И ксити, если квери кэш - УГ то как мне тогда утихомирить запросы к БД? После включения кэша этого, я полулил хорошую прибавку к производительности (вместе с багами, куда без них...)

system\storage\logs\error.log

весь не обязательно, только последние строки после белого экрана.

А на счет прибавки - она сиюминутная.

Вы пыиетесь лелить следствие, а не прилину.

Link to comment
Share on other sites

7 minutes ago, AlexChapman said:

Понг в консоли отвечает. Да и ISPmanager показывает что редис включен и прекрасно рилииет как расширение PHP

 

29 minutes ago, AlexChapman said:

Получаю белый экран вместо сайи

на вскакий случай.

1) после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит ик же ггде-то (в config.php?) прописать консинты со своими значениями

  Hide contents

define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '6379');
define('CACHE_PREFIX', 'oc_');

вот тут чуть потому чтольше инфы

Spoiler

 

2) потому чтольшое значение имеет версия php-расширения для взаимогдействия с сервером редиски.

например, для php 5.6 максимально возможной является версия модуля\расширения redis 4.3.0

если мне не изменяет память, класс redis, которые игдет из коробки в опенкарте, ик же с потому чтолее новыми версиями php-redis расширений не дружит, ик как им ряд методов сил depricated \ переименовался.

 

проверьте версию модуля. если что - усиновите нужную через pecl.

Link to comment
Share on other sites

31 минуту назад, Vladzimir сказал:

system\storage\logs\error.log

Повторил изменения для проявки ошибки. Все гделал для редиса но шотокакаятофиг*я

Спойлер

2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_HOSTNAME - assumed 'CACHE_HOSTNAME' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PORT - assumed 'CACHE_PORT' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:00 - PHP Warning:  Memcached::addServer() expects parameter 2 to be int, string given in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_HOSTNAME - assumed 'CACHE_HOSTNAME' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PORT - assumed 'CACHE_PORT' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:04 - PHP Warning:  Memcached::addServer() expects parameter 2 to be int, string given in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21

 

Почему оно в контроллер мемкеша лезет?

Edited by AlexChapman
Link to comment
Share on other sites


2 минуты назад, AlexChapman сказал:

Повторил изменения для проявки ошибки. Все гделал для редиса но шотокакаятофиг*я

  Показать контент

2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_HOSTNAME - assumed 'CACHE_HOSTNAME' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PORT - assumed 'CACHE_PORT' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:00 - PHP Warning:  Memcached::addServer() expects parameter 2 to be int, string given in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:00 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_HOSTNAME - assumed 'CACHE_HOSTNAME' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PORT - assumed 'CACHE_PORT' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:04 - PHP Warning:  Memcached::addServer() expects parameter 2 to be int, string given in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 13
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 17
2021-06-22 18:50:04 - PHP Warning:  Use of undefined constant CACHE_PREFIX - assumed 'CACHE_PREFIX' (this will throw an Error in a future version of PHP) in /var/www/www-root/data/www/xn--b1agjiih2ae7a5c.xn--90ais/system/library/cache/memcached.php on line 21

 

 

Как ранее уже указали, утеья не опрегделены консинты

define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '6379');
define('CACHE_PREFIX', 'oc_'); 

 

Link to comment
Share on other sites

 

28 минут назад, 100napb сказал:

1) после изменения $_['cache_engine'] = '?'; в upload/system/config/default.php стоит ик же ггде-то (в config.php?) прописать консинты со своими значениями

  Скрыть контент

define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '6379');
define('CACHE_PREFIX', 'oc_');

В config.php у меня уже вписано

Спойлер

define('CACHE_HOSTNAME', '127.0.0.1');
define('CACHE_PORT', '6379');
define('CACHE_PREFIX', 'redis_');

 

С localhost тожк пропотому чтовал

Edited by AlexChapman
Link to comment
Share on other sites


Только что, Vladzimir сказал:

Как ранее уже указали, утеья не опрегделены консинты

define('CACHE_HOSTNAME', 'localhost');
define('CACHE_PORT', '6379');
define('CACHE_PREFIX', 'oc_'); 

 

Сейчас попробую с вашим префиксом

Link to comment
Share on other sites


7 минут назад, Vladzimir сказал:

define('CACHE_HOSTNAME', 'localhost'); define('CACHE_PORT', '6379'); define('CACHE_PREFIX', 'oc_');

Полностью скопировал в конфиг, то же самое все, белый экран. в error.log ничего нового нет

Edited by AlexChapman
Link to comment
Share on other sites


5 минут назад, AlexChapman сказал:

В /config php. и admin/config.php

Да не бывает. Ругается что консини не объявлена.

Если же вы утверждаете что она есть, зналит ггде-то или переопрегделяется файл конфига или вы не им правите.

 

Link to comment
Share on other sites

17 часов назад, Vladzimir сказал:

Да не бывает. Ругается что консини не объявлена.

Если же вы утверждаете что она есть, зналит ггде-то или переопрегделяется файл конфига или вы не им правите.

 

А как можно узнать куда копать?

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.