Привет, обслуживаю некий чат, типа как диалоги в вк.
В нем для обозначения прочитанных сообщений есть таблица:
CREATE TABLE `chat_lastread` (
`user_id` int(8) NOT NULL,
`dialog_id` int(16) NOT NULL,
`date` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`user_id`,`dialog_id`),
KEY `date` (`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Сейчас в таблице 798 строк.
При каждом действии пользователя с сервером, происходит запрос:
$db->query('
INSERT INTO chat_lastread (
`user_id`,
`dialog_id`,
`date`
) VALUES(
#user_id,
#dialog_id,
NOW()
) ON DUPLICATE KEY UPDATE date=NOW()'
, $user->getId(), $dialog_id);
То естьданные в таблицу пишутся постоянно.
При этом этот запрос очень сильно грузит процессор, E3-1230 на 800%
Возможно ли что то сделать с нагрузкой не меняя структуру самого приложения?