- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Можно ли как-то оптимизировать на шаред хостинге таблицу с типом данных MEMORY, кроме как ручного метода копирования в новую, и последующим ее переименованием ?
На сайте размещен форум, и нужно оптимизировать таблицу session
Записей в ней не много, а размер быстро разрастается из-за фрагментации
Хочу прикрутить в крон нечто типа скрипта, но не нашел скрипт и не понятна сама возможность
Что-то вы непонятное хотите, если честно. Для начала бы неплохо СУБД с версией и проблемный софт обозначить. И с чего Вы взяли, что таблица разрастается и именно из-за фрагментации. MEMORY по факту ничего не хранит, перезапуск базы все вычистит.
MEMORY хранит, это BLACKHOLE не хранит. Проблема там не во фрагментации, а в том что хип MySQL не отдает сразу. Так как вы на шареде, вариантов у вас не много. По хорошему, сессии не стоит хранить в базе. Поищите в настройках движка чтобы переключить сессии в файлы.
Для начала бы неплохо СУБД с версией и проблемный софт обозначить. И с чего Вы взяли, что таблица разрастается и именно из-за фрагментации.
Если детально, то движок - xenforo v2.1
Таблица - xf_session_activity
То, что она занимает много места из-за фрагментов, выяснил через бэкап.
Если сделать бэкап таблицы и после восстановление с этого бэкапа, то размер ужимается раз примерно в сорок раз. Грубо с 80 MB до 2MB. Все записи при этом соответствуют исходной. Через месяц размер таблицы опять разрастается. И тд. Визуально, скорость при большой таблице, ниже. После восстановления с бэкапа, скорость возрастает.
Но все это я делал через phpmyadmin, вручную
Хочется автоматизировать процесс
Да тупо очищайте эту таблицу и всё, по крону раз в три месяца. Или же установите какой-нибудь редис и храните сессии там.
Да тупо очищайте эту таблицу и всё, по крону раз в три месяца.
Думал уже эти варианты
В таблице хранятся записи - просмотренных тем участников и еще что-то.
Сами сессии хранятся в другой таблице - xf_session, она уже типа MyISAM, и оптимизируется без проблем
Не стал вообщем.
Или же установите какой-нибудь редис и храните сессии там.
На шареде это не реально.
Так в чём суть проблемы то? Места не хватает на хостинге?
На шареде это не реально.
Есть шареды с редисом, например beget или netangels
А попробуйте запустить на таблице запрос:
Ну так чисто для чистоты эксперимента
На шареде это не реально.
Смотря какой шаред. Как минимум 2шт есть с редисом.
Но задавать вопросы по хостингу нужно в спец. разделе с соблюдением его правил.
Так в чём суть проблемы то? Места не хватает на хостинге?
Я же писал, в основном из-за снижения скорости. Место, это уже второстепенно.
---------- Добавлено 23.01.2020 в 14:26 ----------
Есть шареды с редисом, например beget или netangels
А попробуйте запустить на таблице запрос:
Ну так чисто для чистоты эксперимента
Была такая идея, но не силен в этих запросах.
В бэкапе, есть еще команды создания ключей:
ADD PRIMARY KEY (`user_id`,`unique_key`) USING BTREE,
ADD KEY `view_date` (`view_date`) USING BTREE;
COMMIT;
Их надо делать после - alter table xf_session_activity engine=memory; ?
или они автоматически создадутся как в исходнике ?
Была такая идея, но не силен в этих запросах.
В бэкапе, есть еще команды создания ключей:
Их надо делать после - alter table xf_session_activity engine=memory; ?
или они автоматически создадутся как в исходнике ?
Вообще нет, вы же ключи не удаляете, а в бэкапе они есть, потому что это же бэкап и надо воссоздать таблицу полностью.
Просто сделайте тот запрос что я написал. Это помогает по крайней мере освободить место из под таблиц InnoDB движка, может и с MEMORY сработает.