Товарищи программисты.
Версия все поднимается и поднимается, а оптимизация как-бы нет. Конечно, кеш юзается, но в настоящее время творится #&#*#)#:
[1] => 0.00043511390686035 [SELECT users.*,stylesheets.uri FROM users LEFT JOIN stylesheets ON users.stylesheet = stylesheets.id WHERE users.id = 1 AND confirmed=1]
[2] => 0.0005040168762207 [UPDATE LOW_PRIORITY users SET last_access = 1279571727 WHERE id=1]
[3] => 0.00046205520629883 [INSERT INTO sessions (sid, uid, username, class, ip, time, url, useragent) VALUES ('c6g1o3uxxxxe93', 1, 'ZonD80', 6, 'xxxx', 1279571727, '/', 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6') ON DUPLICATE KEY UPDATE sid = 'c6g1o3u86bhxxxxxe93', uid = 1, username = 'ZonD80', class = 6, ip = 'xxx', time = 1279571727, url = '/', useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6']
[4] => 0.00015497207641602 [SELECT * FROM cron WHERE cron_name IN ('pm_delete_sys_days','pm_delete_user_days')]
[5] => 0.057436943054199 [SELECT (SELECT GROUP_CONCAT(id) FROM messages WHERE location=1 AND receiver=1 AND unread=1 AND IF(archived_receiver=1, 1=1, IF(sender=0,added>1278275727,added>1276979727))) AS unread, (SELECT GROUP_CONCAT(id) FROM messages WHERE location=1 AND receiver=1 AND IF(archived_receiver=1, 1=1, IF(sender=0,added>1278275727,added>1276979727))) AS inbox, (SELECT GROUP_CONCAT(id) FROM messages WHERE saved=1 AND sender=1 AND IF(archived_receiver<>1, 1=1, IF(sender=0,added>1278275727,added>1276979727))) AS outbox, (SELECT GROUP_CONCAT(id) FROM torrents WHERE id NOT IN (34647,34651) AND added>1279540474) AS torrents, (SELECT GROUP_CONCAT(id) FROM comments WHERE id NOT IN (4923,4924,4925) AND added>1279540474) AS comments, (SELECT GROUP_CONCAT(id) FROM pollcomments WHERE added>1279540474) AS pollcomments, (SELECT GROUP_CONCAT(id) FROM newscomments WHERE added>1279540474) AS newscomments, (SELECT GROUP_CONCAT(id) FROM usercomments WHERE id NOT IN (1021,1023,1024,864,866,868,870,871,872,874,875,1005,1022) AND added>1279540474) AS usercomments, (SELECT GROUP_CONCAT(id) FROM reqcomments WHERE added>1279540474) AS reqcomments, (SELECT GROUP_CONCAT(id) FROM rgcomments WHERE added>1279540474) AS rgcomments, (SELECT GROUP_CONCAT(id) FROM pages WHERE id NOT IN (59) AND added>1279540474 AND class <= 6) AS pages, (SELECT GROUP_CONCAT(id) FROM pagecomments WHERE added>1279540474) AS pagecomments, (SELECT GROUP_CONCAT(id) FROM friends WHERE friendid=1 AND confirmed=0) AS friends, (SELECT GROUP_CONCAT(id) FROM users WHERE id NOT IN (1,9248,15953) AND added>1279540474) AS users, (SELECT GROUP_CONCAT(id) FROM reports) AS reports, (SELECT GROUP_CONCAT(id) FROM torrents WHERE moderatedby=0) AS unchecked]
[6] => 0.0012598037719727 [SELECT userid FROM peers GROUP by userid]
[7] => 0.00014090538024902 [SELECT * FROM cron WHERE cron_name IN ('rating_freetime','rating_enabled')]
[8] => 0.069021940231323 [SELECT (SELECT SUM(1) FROM peers WHERE seeder=1 AND userid=1) AS seeding, (SELECT SUM(1) FROM snatched LEFT JOIN torrents ON snatched.torrent=torrents.id WHERE snatched.finished=1 AND torrents.free=0 AND NOT FIND_IN_SET(torrents.freefor,userid) AND userid=1 AND torrents.owner<>1) AS downloaded]
[9] => 0.00021815299987793 [SELECT uid, time FROM sessions WHERE uid<>-1 AND time < 1279568127]
[10] => 7.7962875366211E-5 [DELETE FROM sessions WHERE time < 1279568127]
[11] => 0.00013995170593262 [SELECT * FROM cron WHERE cron_name IN ('last_cleanup','in_cleanup','in_remotecheck','num_cleaned','num_checked','remotecheck_disabled','last_remotecheck','autoclean_interval','remotecheck_interval')]
[12] => 0.00061607360839844 [(SELECT SUM(1) AS peers FROM peers WHERE seeder=1) UNION (SELECT SUM(1) AS peers FROM peers WHERE seeder=0)]
[13] => 0.0069208145141602 [SELECT id, username FROM users WHERE id = (SELECT MAX(id) FROM users WHERE users.confirmed=1)]
[14] => 0.00031089782714844 [SELECT DISTINCT s.uid, s.username, s.class, s.ip FROM sessions AS s WHERE s.time > 1279571427 ORDER BY s.class DESC]
Итак разберем по запросам:
Цитата:
1 - достает данные юзверя и темы
2 - обновляет поле last_access у юзверя (надо убрать и привязать к сессиям (подробнее 10 запрос)
3 - создает/обновляет сессию юзверя
4 - достает данные из крона, чтобы сформировать блок уведомлений (считаю что надо доставать данные из крона, как из cache_stats (только без кеша)
5 - собственно формируется из этого запроса блок уведомлений (грузно, но быстро)
6 - блок
7 - опять же данные из крона для окошка о понижении рейтинга
8 - достает данные из пиров опять же для окошка о понижении рейтинга (можно конечно попробовать схитрожопиться и объединить с 5 запросом, но тут встает вопрос отключенной системы рейтинга)
9 - запрос для обновления статистики последнего входа (закрытия сессии) для юзверей
10 - стандартная операция очистки сессий (чистятся они на страницах, а не в клинапе)
11 - формирование записи о кроне для дебаг-режима
12 - блок
13 - блок
14 - блок
Собственно получается, что релизер на главную убивает 9-10 запросов в зависимости от дебаг-режима, которые
как я посоображал можно свернуть в 6-7. Может у вас есть еще идеи? В принципе, по главной понятно,
хотелось бы увидеть такие расписки по browse, userdetails и т.д., ибо у меня
нет времени заниматься всеми страницами одновременно и
я надеюсь на вашу помощь.
Как мне помочь?
Цитата:
1. Скачайте и установите
версию experimental, путем импорта sql-файла и копирования каталогов
2. Импортируйте языки в базу с помощью langparser.php
3. Дерзайте!
Я включил класс ЧПУ без реврайтов, кто хочет прописывать реврайты есть файл seo.class.with_rewrites.php, который нужно поместить в classes/seo/seo.class.php и файлы make_category_rewrites_xxxx.php для каждого из юзабельных типов веб-серверов. Естественно, реврайты тут генерируются только для категорий и надо будет дописать еще.