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

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


AlexChapman
 Погделиться

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

В обещём, подклюлил  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)

 

 

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


  

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
Ссылка на комменирий
Погделиться на других сайих

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
Ссылка на комменирий
Погделиться на других сайих

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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


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

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

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

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

 

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

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

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

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

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

 

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

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

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


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

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

 

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

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

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


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

 

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

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

system\storage\logs\error.log

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

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

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

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

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.

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

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

 

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

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


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_'); 

 

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

 

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 тожк пропотому чтовал

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


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

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

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

 

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

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


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

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

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

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


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

В /config php. и admin/config.php

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

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

 

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

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

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

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

 

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

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


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

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

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

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

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

Войти

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

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

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

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

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