Forum. MyNuke.ru
Forum. MyNuke.ruСообщения за сегодняПерсональные сообщения

Навигация  
Вернуться   Forum. MyNuke.ru > PHP-NUKE > Настройка и Изменение
Ник
Пароль
Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Andruha вне форума      Старый очень много запросов к бд #1  
Andruha
Частый Гость
Регистрация: 17.09.2005
Сообщения: 46


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Andruha Найти все сообщения от Andruha Добавить Andruha в список друзей  
13.01.2006, 03:10

Здравствуйте
У меня большая проблема, на днях решил поставить счетчик запросов к БД и был очень сильно растроен.
На главной странице около 100 запросов к БД, а в самом каталоге файлов местами до 300 (каталог не родной, Enhanced Downloads Module 2.0 )
Это ужас просто. Неужели данный модуль делали с такими ошибками. Но при том скорость запросов за 0.052498 с.
Хочу узнать как устронить данную проблему ? Где надо править код.

П.С.
Прошу не советовать перейти на другую систему, на тот же Slaed т.к. жалко потраченных сил.
 
Всё для Смартфона и не только на ModernMobile.NET


Soniks вне форума      Старый #2  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
13.01.2006, 03:35

Andruha начните с определения какие функции в php-nuke нужны, а какие нет, т.к. в php-nuke есть оочень ного не нужных функций, которые и кушают запросы, например, рефералы, статистика.
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


kor вне форума      Старый #3  
kor
Участник+
Регистрация: 21.10.2005
Сообщения: 198


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для kor Найти все сообщения от kor Добавить kor в список друзей  
13.01.2006, 09:18

Andruha day sayt dlynut?
 
Engine: php-nuke 7.9 phpbb: 2.0.17


Andruha вне форума      Старый #4  
Andruha
Частый Гость
Регистрация: 17.09.2005
Сообщения: 46


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Andruha Найти все сообщения от Andruha Добавить Andruha в список друзей  
13.01.2006, 10:02

Цитата: Сообщение от Soniks
Andruha начните с определения какие функции в php-nuke нужны, а какие нет, т.к. в php-nuke есть оочень ного не нужных функций, которые и кушают запросы, например, рефералы, статистика.

Лишнее убрал уже давно.
Цитата Andruha day sayt dlynut?

http://modernmobile.net
 
Всё для Смартфона и не только на ModernMobile.NET


kor вне форума      Старый #5  
kor
Участник+
Регистрация: 21.10.2005
Сообщения: 198


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для kor Найти все сообщения от kor Добавить kor в список друзей  
13.01.2006, 16:56

у тебя 81 запрос это нормально!!! снижай еще меньше
 
Engine: php-nuke 7.9 phpbb: 2.0.17


Andruha вне форума      Старый #6  
Andruha
Частый Гость
Регистрация: 17.09.2005
Сообщения: 46


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Andruha Найти все сообщения от Andruha Добавить Andruha в список друзей  
13.01.2006, 18:38

где можно найти материал по данной теме ?
сам не разберусь.
 
Всё для Смартфона и не только на ModernMobile.NET


Andruha вне форума      Старый #7  
Andruha
Частый Гость
Регистрация: 17.09.2005
Сообщения: 46


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Andruha Найти все сообщения от Andruha Добавить Andruha в список друзей  
13.01.2006, 20:40

Вот к примеру простой блок для вывода последнех статей от Small Pages и только он делает 5 запросов к базе:
Код:
<?php if (eregi("block-Top10_Small_Pages.php",$_SERVER['PHP_SELF'])) { Header("Location: index.php"); die(); } global $prefix, $db; $a = 1; $result = $db->sql_query("SELECT pid, title, UNIX_TIMESTAMP(date) as postdate, counter FROM ".$prefix."_smallpages WHERE active=1 ORDER BY pid DESC LIMIT 0,5"); while ($row = $db->sql_fetchrow($result)) { $pid = intval($row['pid']); $title = stripslashes($row['title']); $p_date = date("d/m/Y", $row["postdate"]); $kol_vo = $db->sql_numrows($db->sql_query("SELECT tid FROM ".$prefix."_smallpages_comments WHERE pid='$pid'")); $content .= "<strong><big>&middot;</big></strong>&nbsp;<a href=\"modules.php?name=Pages&go=page&pid=$pid\"><b>$title</b></a>&nbsp;<em>$p_date</em><br> "; $a++; } ?>
 
Всё для Смартфона и не только на ModernMobile.NET


Master вне форума      Старый #8  
Аватара для Master
Master
Участник
Регистрация: 06.04.2005
Сообщения: 98


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Master Найти все сообщения от Master Добавить Master в список друзей  
14.01.2006, 11:27

Andruha Можно попробывать заменить несколько функций в файле mainfile большого снижения нагрузки не обещаю но всеже!

Открываем mainfile.php

Находим функцию:

PHP код:
 function is_admin($admin) { 


Заменяем на:
PHP код:
 function is_admin($admin) { 
    global 
$prefix$db
    static 
$adminSave
    if (isset(
$adminSave)) return ($adminSave);
    if(!
is_array($admin)) { 
        
$admin base64_decode($admin); 
        
$admin explode(":"$admin); 
    } 
    
$aid $admin[0]; 
    
$pwd $admin[1]; 
    if (
$aid != "" AND $pwd != "") { 
        
$aid trim($aid); 
        
$sql "SELECT pwd FROM ".$prefix."_authors WHERE aid='$aid'"
        
$result $db->sql_query($sql); 
        
$row $db->sql_fetchrow($result); 
        
$pass $row['pwd']; 
        if (
$pass == $pwd && $pass != "") { 
            return 
$adminSave 1
        } 
    } 
    return 
$adminSave 0



Далее находим:
PHP код:
 function is_user($user) { 


Заменяем на:
PHP код:
 function is_user($user) { 
    global 
$db$user_prefix
    static 
$userSave
    if (isset(
$userSave)) return ($userSave); 
    if (!
is_array($user)) { 
        
$user base64_decode($user); 
        
$user explode(":"$user); 
    } 
    
$uid $user[0]; 
    
$pwd $user[2]; 
    
$uid intval($uid); 
    if (
$uid != "" AND $pwd != "") { 
        
$sql "SELECT user_password FROM ".$user_prefix."_users WHERE user_id='$uid'"
        
$result $db->sql_query($sql); 
        
$row $db->sql_fetchrow($result); 
        
$pass $row['user_password']; 
        if (
$pass == $pwd && $pass != "") { 
            return 
$userSave 1
        } 
    } 
    return 
$userSave 0



Далее находим:
PHP код:
 function blocks($side) { 


Заменяем на:
PHP код:
 function blocks($side) {
    global 
$storynum$prefix$multilingual$currentlang$db$admin$user;
    static 
$barr;
    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;
    if (!isset(
$barr)){
    
$sql "SELECT bid, bkey, title, content, url, blockfile, view, expire, action, subscription, bposition FROM ".$prefix."_blocks WHERE active='1' $querylang ORDER BY weight ASC";
    
$result $db->sql_query($sql);
    while(list(
$bid$bkey$title$content$url$blockfile$view$expire$action$subscription$bposition) = $db->sql_fetchrow($result)) {
        
$bid intval($bid);
        
$view intval($view);
        
$barr[]= array($bid$bkey$title$content$url$blockfile$view$expire$action$subscription$bposition);
        }
        }
      for (
$i=0$i<sizeof($barr); $i++){
      list (
$bid$bkey$title$content$url$blockfile$view$expire$action$subscription$bposition)=$barr[$i];
        if (
$bposition==$side){
        
$now time();
        if (
$sub == OR ($sub == AND !paid())) {
                    if (
$expire != 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 (
$view == 0) {
                                        
render_blocks($side$blockfile$title$content$bid$url);
                            } elseif (
$view == AND is_user($user) || is_admin($admin)) {
                                        
render_blocks($side$blockfile$title$content$bid$url);
                            } elseif (
$view == AND is_admin($admin)) {
                                        
render_blocks($side$blockfile$title$content$bid$url);
                            } elseif (
$view == AND !is_user($user) || is_admin($admin)) {
                                        
render_blocks($side$blockfile$title$content$bid$url);
                             }
                        }
                }
    }



Вот вобщем это минимум что можно зделать!
 
Будь проще и люди к тебе потянутся :)


kor вне форума      Старый #9  
kor
Участник+
Регистрация: 21.10.2005
Сообщения: 198


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для kor Найти все сообщения от kor Добавить kor в список друзей  
14.01.2006, 16:39

Master это тока для него или все могут сделать
 
Engine: php-nuke 7.9 phpbb: 2.0.17


Andruha вне форума      Старый #10  
Andruha
Частый Гость
Регистрация: 17.09.2005
Сообщения: 46


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Andruha Найти все сообщения от Andruha Добавить Andruha в список друзей  
14.01.2006, 18:58

Master спасибо, на несколько запросов стало меньше.
Только вот это минимум, что можно сделать :(
 
Всё для Смартфона и не только на ModernMobile.NET


Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Очень странная проблема в PhpBB 2.0.16 для Nuke 7.6 RUS!!!??? MAG Установка Модулей 3 26.10.2005 01:23
колличество запросов в базу tolledo Настройка и Изменение 41 10.10.2005 00:06
много интересных вопросов (может только для меня?) kim Настройка и Изменение 7 08.08.2005 10:48


Часовой пояс GMT +4, время: 17:17.


На Верх
Рейтинг@Mail.ru