A.L.E.C wrote: > Dennis P. Nikolaenko wrote: > >>> By the way, reading rcube_sess_gc() I found an improvement >>> possibility. Function could be simpler and speed increased if we'll >>> create index on cache.session_id column with "ON DELETE CASCADE" >>> reference, but it needs innodb in mysql (foreign keys not supported >>> by myisam tables), and triggers in sqlite (foreign keys not supported >>> at all). >>> >>> >> Another solution would be to get rid of the initial SELECT query and >> IN (... ) clauses and do one DELETE query with a JOIN between >> "session" and "cache" and second DELETE just for session. Both DELETEs >> would just have a now()-changed > $maxlifetime WHERE clause. now() is >> constant, so it may be better to write expression like >> now()-$maxlifetime > changed. If there is an index on changed column, >> the search would be very quick. >> This approach has a potential of non atomic commit if cache entry is >> created between the two DELETEs. So it should be wrapped into a >> transaction. >> > > So, adding cache.session_id and session.changed indexes will be a good > improvement for now. Now my session table shrank to a reasonable amount of entries. Thanks!
-- Regards, Dennis P. Nikolaenko _______________________________________________ List info: http://lists.roundcube.net/dev/
