|
оптимизация нюки!!!
ребят!!! давайте делиться способами оптимизации нюки а то ни на одном форуме нет аткого топика !!!!!!
многим хочеться чтобы у них нюка была как слайд)))) что вы об этом думаете? пожалуй я начну!!! вот ссылка на статью где вы можете убрать очень сного запросов у своего сайта!!! до 20 запросов сделать можете http://lkrotish.narod.ru/optimize.html |
короче установил я все кроме blocks($side) и на главной нюка грузит 49 запросов!!!
под админком и пользователем всего 60 запросов вместо 200!!! помогите установить то что несмог установить!!! скажите что в этом нето function blocks($side) { global $storynum, $prefix, $multilingual, $currentlang, $db, $admin, $user; if ($multilingual == 1) { $querylang = "AND (blanguage='$currentlang' OR blanguage='')"; } else { $querylang = ""; } if (strtolower($side[0]) == "l") { $pos = "l"; } elseif (strtolower($side[0]) == "r") { $pos = "r"; } elseif (strtolower($side[0]) == "c") { $pos = "c"; } elseif (strtolower($side[0]) == "d") { $pos = "d"; } $side = $pos; global $edogs_blocks; if(empty($edogs_blocks)) { $sql = "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subion, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC"; $result = $db->sql_query($sql); while($row_z = $db->sql_fetchrow($result)) { $edogs_blocks[]=$row_z; } } foreach($edogs_blocks as $k=>$row) { if($row['bposition']!=$pos) continue; $bid = intval($row['bid']); $title = stripslashes(check_html($row['title'], "nohtml")); $content = stripslashes($row['content']); $url = stripslashes($row['url']); $blockfile = $row['blockfile']; $view = intval($row['view']); $expire = intval($row['expire']); $action = $row['action']; $action = substr("$action", 0,1); $now = time(); $sub = intval($row['subion']); if ($sub == 0 OR ($sub == 1 AND !paid())) { if ($expire != 0 AND $expire <= $now) { if ($action == "d") { $db->sql_query("UPDATE ".$prefix."_blocks SET active='0', expire='0' WHERE bid='$bid'"); return; } elseif ($action == "r") { $db->sql_query("DELETE FROM ".$prefix."_blocks WHERE bid='$bid'"); return; } } if ($row[bkey] == admin) { adminblock(); } elseif ($row[bkey] == userbox) { userblock(); } elseif ($row[bkey] == "") { if ($view == 0) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 1 AND is_user($user) || is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 2 AND is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 3 AND !is_user($user) || is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } } } } } это потимизация мне дала - 15 на главной и в админке было раньше 200 а щас 60 |
Мне данная инструкция помогла опуститься на несколько запросов, спасибо.
function blocks($side) - тоже не работает |
ты смеешься? у меня убрал 15 запросов а админка стала грузиться не 200 запросов а 60!! теперь у меня всего 49 запросов
|
kor
так а что требуется то? |
в той статье у меня неполучилось вот эта фунуция!! проблема в том что заменяю я стандартную функция этой и у меня негрузятся ни одного блока на айте на главной !! помоги ее подправить чтоб блоки выводились!!! видимо это сжделано для старых нюк или я просто незнаю!
function blocks($side) { global $storynum, $prefix, $multilingual, $currentlang, $db, $admin, $user; if ($multilingual == 1) { $querylang = "AND (blanguage='$currentlang' OR blanguage='')"; } else { $querylang = ""; } if (strtolower($side[0]) == "l") { $pos = "l"; } elseif (strtolower($side[0]) == "r") { $pos = "r"; } elseif (strtolower($side[0]) == "c") { $pos = "c"; } elseif (strtolower($side[0]) == "d") { $pos = "d"; } $side = $pos; global $edogs_blocks; if(empty($edogs_blocks)) { $sql = "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subion, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC"; $result = $db->sql_query($sql); while($row_z = $db->sql_fetchrow($result)) { $edogs_blocks[]=$row_z; } } foreach($edogs_blocks as $k=>$row) { if($row['bposition']!=$pos) continue; $bid = intval($row['bid']); $title = stripslashes(check_html($row['title'], "nohtml")); $content = stripslashes($row['content']); $url = stripslashes($row['url']); $blockfile = $row['blockfile']; $view = intval($row['view']); $expire = intval($row['expire']); $action = $row['action']; $action = substr("$action", 0,1); $now = time(); $sub = intval($row['subion']); if ($sub == 0 OR ($sub == 1 AND !paid())) { if ($expire != 0 AND $expire <= $now) { if ($action == "d") { $db->sql_query("UPDATE ".$prefix."_blocks SET active='0', expire='0' WHERE bid='$bid'"); return; } elseif ($action == "r") { $db->sql_query("DELETE FROM ".$prefix."_blocks WHERE bid='$bid'"); return; } } if ($row[bkey] == admin) { adminblock(); } elseif ($row[bkey] == userbox) { userblock(); } elseif ($row[bkey] == "") { if ($view == 0) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 1 AND is_user($user) || is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 2 AND is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } elseif ($view == 3 AND !is_user($user) || is_admin($admin)) { render_blocks($side, $blockfile, $title, $content, $bid, $url); } } } } } |
Тут же взято почти все ядро от EdogsNuke :(
kor Новости кстати тоже можно переделать чтобы он делали не по 2 запроса на новость а все в 1 |
почти ты грустишь что взять от едогса? как сделать меньше запросов в нвоостях?
и подскажие может ты еще что нить знаешь как оптимизировать? |
kor Вобщем вот берем модуль новостей от нюки 76 на других не пробывал находим там вот это :
if (isset($new_topic)) { $new_topic = intval($new_topic); } else { $new_topic == 0; } if (isset($userinfo['setstorynum']) AND $user_news == 1) { $storynum = $userinfo['setstorynum']; } else { $storynum = $storyhome; } if ($new_topic == 0) { $qdb = "WHERE (ihome='0' OR catid='0')"; $home_msg = ""; } else { $qdb = "WHERE topic='$new_topic'"; $result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'"); $row_a = $db->sql_fetchrow($result_a); $numrows_a = $db->sql_numrows($result_a); $topic_title = stripslashes(check_html($row_a['topictext'], "nohtml")); Заменяем на это: if (isset($new_topic)) { $new_topic = intval($new_topic); } else { $new_topic == 0; } if (isset($cookie[3]) AND $user_news == 1) { $storynum = $cookie[3]; } else { $storynum = $storyhome; } if ($new_topic == 0) { $qdb = "WHERE (ihome='0' OR s.catid='0') AND s.time <= NOW()"; $home_msg = ""; } else { $qdb = "WHERE topic='$new_topic' AND s.time <= NOW()"; $result_a = $db->sql_query("SELECT topictext FROM ".$prefix."_topics WHERE topicid='$new_topic'"); $row_a = $db->sql_fetchrow($result_a); $numrows_a = $db->sql_numrows($result_a); $topic_title = stripslashes(check_html($row_a['topictext'], "nohtml")); Дальше находим: $result = $db->sql_query("SELECT sid, catid, aid, title, time, hometext, bodytext, comments, counter, topic, informant, notes, acomm, score, ratings FROM ".$prefix."_stories $qdb $querylang ORDER BY sid DESC limit $storynum"); while ($row = $db->sql_fetchrow($result)) { $s_sid = intval($row['sid']); $catid = intval($row['catid']); $aid = stripslashes($row['aid']); $title = stripslashes(check_html($row['title'], "nohtml")); $time = $row['time']; $hometext = stripslashes($row['hometext']); $bodytext = stripslashes($row['bodytext']); $comments = stripslashes($row['comments']); $counter = intval($row['counter']); $topic = intval($row['topic']); $informant = stripslashes($row['informant']); $notes = stripslashes($row['notes']); $acomm = intval($row['acomm']); $score = intval($row['score']); $ratings = intval($row['ratings']); if ($catid > 0) { $row2 = $db->sql_fetchrow($db->sql_query("SELECT title FROM ".$prefix."_stories_cat WHERE catid='$catid'")); $cattitle = stripslashes(check_html($row2['title'], "nohtml")); } getTopics($s_sid); formatTimestamp($time); заменяем на это: if ($pagenum == "") { $pagenum = 1; } $offset = ($pagenum-1) * $storynum; $offset = intval($offset); $storynum = intval($storynum); $sql = "SELECT sid, s.catid, s.aid, s.title, s.time, s.hometext, s.bodytext, s.comments, s.counter, s.topic, s.informant, s.notes, s.acomm, s.score, s.ratings, c.title, t.topicid, t.topicname, t.topicimage, t.topictext, a.email, a.url FROM ".$prefix."_stories AS s LEFT JOIN ".$prefix."_stories_cat AS c on (s.catid=c.catid) LEFT JOIN ".$prefix."_topics AS t on (s.topic=t.topicid) LEFT JOIN ".$prefix."_authors AS a on (s.aid=a.aid) $qdb $querylang ORDER BY s.time DESC LIMIT $offset, $storynum"; $result = $db->sql_query($sql); while (list( $s_sid , $catid, $aid, $title, $time, $hometext, $bodytext, $comments, $counter, $topic, $informant, $notes, $acomm, $score, $ratings, $ctitle, $topicid, $topicname, $topicimage, $topictext, $aemail, $aurl)=$db->sql_fetchrow($result)) { if ($catid > 0) { $cattitle = $ctitle; } formatTimestamp($time); все! Правда тут еще использован кусоек кода от хака pagenum но все впринципе работает я думаю если он кому то мешает то не составит труда вырезать из данного кода лишнее! |
праивльно я понял что это надо изменять в модули news index.php
|
Часовой пояс GMT +4, время: 11:37. |
|
Copyright © 2005 by Soniks