Използвам 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