Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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


AlexChapman

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)

 

 

Змінено користувачем 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 сказал:

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

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

 

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

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.