Оптимизация БД таблицы типа MEMORY

123
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#11
sanek1991:
Я же писал, в основном из-за снижения скорости. Место, это уже второстепенно.

Стоп стоп. Снижение производительности выборки из таблицы MEMORY? Вы точно ничего не путаете?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Aisamiery
На сайте с 12.04.2015
Offline
318
#12
LEOnidUKG:
Стоп стоп. Снижение производительности выборки из таблицы MEMORY? Вы точно ничего не путаете?

Может там не хватает памяти и в свап уходит? Хотя не уверен что такое может быть

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
danforth
На сайте с 18.12.2015
Offline
153
#13

Попробуйте лучше в InnoDB конвертнуть. Там хотя бы блокировки уровня строки а не всей таблицы целиком.

Junior Web Developer
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#14
danforth:
Попробуйте лучше в InnoDB конвертнуть. Там хотя бы блокировки уровня строки а не всей таблицы целиком.

Как вариант. Но я что-то сомневаюсь, что MEMORY в принципе может тормозить.

S1
На сайте с 02.10.2016
Offline
138
#15
LEOnidUKG:
Как вариант. Но я что-то сомневаюсь, что MEMORY в принципе может тормозить.

Может и не от этого, но визуально скорость выше.

Я когда первый раз увидел, таблица была размером 500 MB

Попробовал команду engine


ALTER TABLE `xf_session_activity` ENGINE = MEMORY;
MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.2837 сек.)

Но, самое интересное, что размер уменьшился.

Просто сегодня уже ужимал, не могу сейчас сделать чистый эксперимент

---------- Добавлено 23.01.2020 в 16:36 ----------

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

Но шаред хостинг мощный, устраивает поддержка, тянет большой форум, уходить с него не буду

Постоянно обмениваюсь ссылками с качественными сайтами по теме электроника, электронные компоненты, и тд.
O
На сайте с 28.07.2009
Offline
131
#16
danforth:
MEMORY хранит, это BLACKHOLE не хранит. Проблема там не во фрагментации, а в том что хип MySQL не отдает сразу. Так как вы на шареде, вариантов у вас не много. По хорошему, сессии не стоит хранить в базе. Поищите в настройках движка чтобы переключить сессии в файлы.

https://dev.mysql.com/doc/refman/8.0/en/memory-storage-engine.html

When the MySQL server halts or restarts, the data in MEMORY tables is lost.



---------- Добавлено 24.01.2020 в 10:00 ----------

В общем, рекомендую раз в сутки, когда пользователей минимум, сделать для освобождения удаленных строк

ALTER TABLE `xf_session_activity` ENGINE = MEMORY;

и не морочиться больше этим.
занимаюсь автоматизацией торговли (http://olegon.ru)
D
На сайте с 28.06.2008
Offline
1108
#17

Если у хостера установлен мемкеш - то поможет перенос хранения сессий из базы в мемкеш. По крайне мере у меня на Джумле помогало.

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

LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#18
Но на шаредах вроде нет доступа к крону...

С добрым утром. Есть на всех.

_
На сайте с 24.03.2008
Offline
381
#19
LEOnidUKG:
С добрым утром. Есть на всех.

Есть-то он есть, но к примеру мастерхост его регулярно "трёт", вероятно при каждой внутренней миграции, уж не знаю.

Утверждают, что "сам" :).

S1
На сайте с 02.10.2016
Offline
138
#20
olegon:

В общем, рекомендую раз в сутки, когда пользователей минимум, сделать для освобождения удаленных строк
ALTER TABLE `xf_session_activity` ENGINE = MEMORY;

и не морочиться больше этим.

Собственно это и хотел.

Но тут вопрос - можно ли это сделать командой из настройки планировщика (панель Plesk)

Или только через отдельный скрипт, и в планировщике указывать к нему путь ?

jpg 1.jpg
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий