Я использую MySQL для управления данными сеанса для моего приложения PHP. При тестировании приложения оно обычно очень быстрое и отзывчивое. Однако, по-видимому, случайным образом ответ будет остановлен, прежде чем наконец завершится через несколько секунд. Я сузил проблему до запроса записи сеанса, который выглядит примерно так:
INSERT INTO Session VALUES('lvg0p9peb1vd55tue9nvh460a7', '1275704013', '') ON DUPLICATE KEY UPDATE sessAccess='1275704013',sessData='';
Журнал медленных запросов содержит эту информацию:
Query_time: 0.524446 Lock_time: 0.000046 Rows_sent: 0 Rows_examined: 0
Это происходит примерно 1 из каждых 10 раз. Запрос обычно занимает ~ 0,0044 сек.
Таблица InnoDB с 60 строками. sessId - это первичный ключ с индексом BTREE.
Так как к этому обращаются при каждом просмотре страницы, это явно не приемлемое время выполнения. Почему это происходит?
Обновление: Схема таблицы: sessId: varchar (32), sessAccess: int (10), sessData: text