PhpBBPhpbb_notifications - таблица уведомлений

Знаменитый бесплатный форумный движок: инсталляция, обновление, установка модов
Ответить Пред. темаСлед. тема
Альберт
Phpbb_notifications - таблица уведомлений

Сообщение Альберт » 30 июн 2019, 19:09

Привет всем! Хочу поделиться решением проблемы с тормозами форума. Он у меня старенький, с количеством пользователей около 300тысяч!
При этом сообщений на форуме не так и много, что-то в районе полумиллиона. Старые удаляются автоматически. Т.е. база по идее должна быть в стабильном состоянии.
Ан нет! Она росла. И росла так, что мощный сервер стал тормозить. Настройки не помогали. Стал смотреть базу, оказалось, что phpbb_notifications - таблица, где хранятся уведомления - разрослась до 12Гигабайт!
Тыкнул в несколько записей - там уведомления для людей, которые не заходят на форум уже 2-3 года. И зачем, подумал я, их хранить?
В общем, что я сделал:
1. В PhpMyAdmin переименовал (на всякий случай, вместо очистки) таблицу phpbb_notifications в phpbb_notifications1
2. Там же в SQL-запросах создал новую пустую таблицу phpbb_notifications. Вот каким запросом (подсмотрел его в экспорте):

Код: Выделить всё

-- phpMyAdmin SQL Dump

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

--
-- Структура таблицы `phpbb_notifications`
--

CREATE TABLE `phpbb_notifications` (
  `notification_id` int(10) UNSIGNED NOT NULL,
  `notification_type_id` smallint(4) UNSIGNED NOT NULL DEFAULT '0',
  `item_id` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  `item_parent_id` mediumint(8) UNSIGNED NOT NULL DEFAULT '0',
  `user_id` int(10) UNSIGNED NOT NULL DEFAULT '0',
  `notification_read` tinyint(1) UNSIGNED NOT NULL DEFAULT '0',
  `notification_time` int(11) UNSIGNED NOT NULL DEFAULT '1',
  `notification_data` text COLLATE utf8_bin NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

--
-- Индексы сохранённых таблиц
--

--
-- Индексы таблицы `phpbb_notifications`
--
ALTER TABLE `phpbb_notifications`
  ADD PRIMARY KEY (`notification_id`),
  ADD KEY `item_ident` (`notification_type_id`,`item_id`),
  ADD KEY `user` (`user_id`,`notification_read`);

--
-- AUTO_INCREMENT для сохранённых таблиц
--

--
-- AUTO_INCREMENT для таблицы `phpbb_notifications`
--
ALTER TABLE `phpbb_notifications`
  MODIFY `notification_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT;
Форум продолжил нормально функционировать, конечно, уведомления пропали, ну и черт с ними!
Зато форум задышал. И я переехал с сервера на просто мощную VPS. Это позволит сэкономить в районе 15тысяч рублей за год. Счиатю, что это неплохо.
Удачи всем!

Реклама
Альберт
Re: Phpbb_notifications - таблица уведомлений

Сообщение Альберт » 30 июн 2019, 19:10

Забыл написать. Версия форума 3.2.5 Но это вряд ли имеет значение, т.к. структура таблиц меняется редко.

Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.