Ошибка производительности RoundCube с контактами выше 1000 в MySQL - PullRequest
1 голос
/ 08 февраля 2012

Огромные задержки при входе пользователя в RoundCube. Если у пользователя около 2000 сообщений в почтовом ящике, задержка составляет 2-3 минуты. Обычно 435 записей в таблице «пользователи», 1400 в таблице «контакты», 333 в «группе контактов», 56 в «группах контактов».

Включение регистрации запросов RoundCube sql показывает задержку при запросе «UPDATE session SET»:

[08-Feb-2012 16:05:10 +0000]: query(1): SELECT cache_id, data, cache_key FROM cache WHERE user_id = 84 AND cache_key = 'IMAP.messagecount' ORDER BY created DESC LIMIT 0, 1;

[08-Feb-2012 16:05:10 +0000]: query(1): UPDATE cache SET created = now(), data = 'a:5:{s:5:\"INBOX\";a:2:{s:3:\"ALL\";i:4041;s:6:\" UNSEEN\";i:1924;}s:6:\"Drafts\";a:1:{s:6:\"UNSEEN\ ";i:0;}s:4:\"Sent\";a:1:{s:6:\"UNSEEN\";i:0;}s:4:\ "Junk\";a:1:{s:6:\"UNSEEN\";i:0;}s:5:\"Trash\";a:1 :{s:6:\
"UNSEEN\";i:0;}}' WHERE user_id = 84 AND cache_key = 'IMAP.messagecount';

[08-Feb-2012 16:**05:10** +0000]: query(1): UPDATE session SET vars='bGFuZ3VhZ2V8czo1OiJydV9SVSI7aW1
<-- TRUNCATED -->
5MjQ7czo2OiJEcmFmdHMiO2k6MDtzOjQ6IlNlbnQiO2k6MDtzO jQ6Ikp1bmsiO2k6MDtzOjU6IlRyYXNoIjtpOjA7fQ==',chang ed='2012-02-08 16:05:10' WHERE sess_id='61eh0naumln6odsn9pvg8mdki4';

[08-Feb-2012 16:**06:29** +0000]: query(1): UPDATE cache SET created = now(), data = 'a:1:{s:5:\"INBOX\";a:2:{s:3:\"ALL\";i:4141;s:6:\" UNSEEN\";i:1924;}}' WHERE user_id = 84 AND cache_key = 'IMAP.messagecount';
[08-Feb-2012 16:06:29 +0000]: query(1): SELECT vars, ip, changed FROM session WHERE sess_id = '6
1eh0naumln6odsn9pvg8mdki4';

Также нет никаких задержек после полной очистки таблицы «Контакты».

Все настройки RoundCube являются настройками по умолчанию. IMAP-сервер на том же хосте. RoundCube версия 0.7.1 (последняя). MySQL - PHP 5.1.61 (php-fpm) - 5.3.8 Nginx -1.1.13

Можно ли исправить эту ошибку производительности RoundCube с контактами выше 1000?

...