Visualizzazione risultati 1 fino 19 di 19

Discussione: Non è possibile accedere al sito

  1. #1
    Guest

    Predefinito Non è possibile accedere al sito

    Codice:
    Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in /membri2/rinoadiaryforum/phpbb/db/mysql4.php on line 330
    
    Warning: mysql_errno(): supplied argument is not a valid MySQL-Link resource in /membri2/rinoadiaryforum/phpbb/db/mysql4.php on line 331
    phpBB : Critical Error
    
    Could not connect to the database
    Così, improvvisamente. Problemi del server?

  2. #2
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Il tuo indirizzo email è corretto?
    Gianluca

  3. #3
    Guest

    Predefinito

    Sì. Nessuna modifica, nessun intervento. Stamattina improvvisamente spunta fuori questo messaggio.

    Adesso il forum è di nuovo accessibile, ma non sarebbe male capire PERCHE' è successa una cosa del genere.

  4. #4
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Ti ho mandato due emails, se le hai ricevute ti chiedo di replicarmi.
    Gianluca

  5. #5
    Guest

    Predefinito

    Ho letto ora le tue mails, offro la mia disponibilità per ottimizzare il codice e risolvere il problema, ma a questo fine devo essere guidata passo passo, perchè non ho idea di cosa e come modificare. Hai scritto che

    riorganizzando la base dati o riscrivendo la query in modo che nel primo passo il campo "key" non rimanga nullo si dovrebbe risolvere il problema.
    Se mi spieghi, magari anche via email, cosa modificare o quale stringa di codice sostituire, lo faccio volentieri.

    Grazie ^^

  6. #6
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    vedo che usi mkportal e come forum phpbb... hai fatto l'instllazione classica di phpbb?? hai mod strane o cose simili sul forum?

    al massimo prova a postare la struttura del forum per vedere se le key sono nei posti giusti... o che qualche modifica (o installazione custom? non ho mai usato mkportal...) non ne abbia perse per strada...
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  7. #7
    Guest

    Predefinito

    Il codice che da problemi, e che Gianluca mi ha gentilmente fatto avere via email, è questo:

    Codice:
    Eseguendo il comando seguente, che puoi tu stesso ripetere in phpmyadmin:
    
    =================
    
    explain
    SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    FROM phpbb_forums f, phpbb_topics t, phpbb_users u, phpbb_posts p, phpbb_posts_text pt
    WHERE pt.post_id = p.post_id
    AND f.forum_id = p.forum_id
    AND p.topic_id = t.topic_id
    AND p.poster_id = u.user_id
    ORDER BY p.post_time DESC LIMIT 0,5;
    =================
    
    Abbiamo ottenuto questo risultato:
    
    =================
    
    +----+-------------+-------+--------+-------------------------------------+----------+---------+--------------------------------+------+---------------------------------+
    | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra
    |
    +----+-------------+-------+--------+-------------------------------------+----------+---------+--------------------------------+------+---------------------------------+
    | 1 | SIMPLE | f | ALL | PRIMARY | NULL | NULL | NULL | 28 | Using temporary; Using filesort
    |
    | 1 | SIMPLE | p | ref | PRIMARY,forum_id,topic_id,poster_id | forum_id | 2 | my_rinoadiaryforum.f.forum_id | 1128 |
    |
    | 1 | SIMPLE | u | eq_ref | PRIMARY | PRIMARY | 3 | my_rinoadiaryforum.p.poster_id | 1 |
    |
    | 1 | SIMPLE | t | eq_ref | PRIMARY | PRIMARY | 3 | my_rinoadiaryforum.p.topic_id | 1 |
    |
    | 1 | SIMPLE | pt | eq_ref | PRIMARY | PRIMARY | 3 | my_rinoadiaryforum.p.post_id | 1 |
    |
    +----+-------------+-------+--------+-------------------------------------+----------+---------+--------------------------------+------+---------------------------------+
    
    ===========================
    Il problema di ottimizzazione viene evidenziato nel primo passo in cui non viene utilizzato alcun indice e il processo richiede la creazione di una tabella temporanea, riorganizzando la base dati o riscrivendo la query in modo che nel primo passo il campo "key" non rimanga nullo si dovrebbe risolvere il problema.
    Ho chiesto aiuto ieri stesso sul forum di phpbb[dot]com, ma non ho ancora ricevuto risposta..

    Per quanto riguarda le mods, ne ho qualcuna installata, ma nessuna particolarmente "pesante" se non quella che assegna ad ogni utente i valori HP, MP ed EXP. Non credo però che c'entri con questo problema perchè problemi di lentezza il mio forum li ha avuti anche da prima.

    Domanda : Nell'eventualità di dover rinunciare a PHPBB, che (molti dicono) ha problemi nella gestione di Database di grosse dimensioni, sarebbe un vantaggio (in termini di sovraccarico al server) passare ad una board SMF (Simple Machine Forum)?
    Ultima modifica di rinoadiaryforum : 25-08-2006 alle ore 18.29.41

  8. #8
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Il problema appare localizzato su quella query, però puoi provare a disattivare il disattivabile per 24/72h a titolo di test, senz'altro non andresti a peggiorare nulla.
    Gianluca

  9. #9
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    tanto per cominciare

    grep 'SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig,' ./*
    ./search.php: $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    il file in questione e' search.php anche per te?

    //EDIT
    non serve andar a guardare la struttura...
    la tua query e' diversa da quella che vedo io in phpbb 2.0.21... che versione hai???

    da me anziche' fare un controllo per uguaglianzia usa IN... (se c'e' un solo elemento non cambia nulla)... e poi non usa l'order by :S

    la tabella temporanea... e' normale che la crei con una query simile e la struttura di phpbb :S

    Codice PHP:
    //
    // Look up data ...
    //
    if ( $search_results != '' )
    {
    if (
    $show_results == 'posts' )
    {
    $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    FROM "
    . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
    WHERE p.post_id IN (
    $search_results)
    AND pt.post_id = p.post_id
    AND f.forum_id = p.forum_id
    AND p.topic_id = t.topic_id
    AND p.poster_id = u.user_id"
    ;
    }
    controlla che versione di phpbb hai... e che revision e' il file search.php che hai...

    l'ultimo che mi risulta e':
    * $Id: search.php,v 1.72.2.20 2006/05/20 14:01:48 grahamje Exp $

    //EDIT2

    phpbb gira che e' un piacere anche su board enormi... non grosse... i più grandi forum al mondo sono basati su phpbb... ovviamente modificati ma sempre phpbb sono di base.... non vbullettin :P

    http://www.big-boards.com/

    Who is Online? - 30018 users. (25942 visible, 2997 hidden, 1079 guests).
    Gaia has 759,485,381 articles posted with 4,483,945 registered users
    avranno un bel po' di server in load balancing... ma il codice di base e' phpbb :P

    la prima cosa che si fa su board grandi (ma parliamo di board con più di 10.000 utenti... la tua la considero una board piccola... :S) è disattivare la ricerca...

    potresti provare a disattivarla (se confermi che quella query anche nel tuo caso e' in search.php)..

    o metterci grossi limiti... poi tagliare i dati leggi pe ogni pagina ... ci sono comunque vari thread su phpbb.com al riguardo... ma nel tuo caso ripeto che deve funzionare così come l'hanno scritta... senza tante modifiche :P
    Ultima modifica di Evcz : 25-08-2006 alle ore 19.27.29
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  10. #10
    Guest

    Predefinito

    Sì, in search.php ho questa query:

    Codice:
    $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    Disattivando la ricerca (dal pannello amministrazione non trovo l'impostazione corrispondente, come si fa? o.ò) risolverei qiundi il problema?


    La mia versione di phpbb è la 2.021, come leggo nella pagina principale del pannello admin

    Codice:
    Powered by phpBB 2.0.21
    controlla che revision e' il file search.php che hai..
    Questo non ho idea di come controllarlo :P

    ci sono comunque vari thread su phpbb.com al riguardo... ma nel tuo caso ripeto che deve funzionare così come l'hanno scritta... senza tante modifiche :P
    Ho trovato questo thread:

    http://www.phpbb.com/phpBB/viewtopic.php?t=135383

    ma le modifiche suggerite non mi sembrano siano riferite all'ultima release di phpbb, per cui molte (quelle per l'index.php) non mi paiono applicabili. L'unica potrebbe essere quella per il file viewtopic.php. A questo proposito l'autore del post scrive:

    - Viewtopic.php

    Perhaps this is one of the more interesting hack and more useful to everyone. When fetching a particular page within a topic, there is a large query that fetches the user info, post info, and post contents. I had the believe that we should always join queries to avoid latency so I never touched that query. As it turns out, when a thread gets bigger and bigger, a large joined query with the where and sort by clause will take a ton of memory to process. If we're looking for the last page of a topic with 1000 replies, MYSQL grabs the post text and user data from all the posts, then splits out the last 15. (or whatever posts each page shows)

    So, instead of one query containing:

    Codice:
    $sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_session_time, u.user_allow_viewonline, u.user_allowsmile, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
       FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
       WHERE p.post_id in  p.topic_id = $topic_id $limit_posts_time
          AND pt.post_id = p.post_id
          AND u.user_id = p.poster_id
       ORDER BY p.post_time $post_time_order
       LIMIT $start, ".$board_config['posts_per_page'];
    I now start off with

    Codice:
    $p_array = array();
    $sql = "SELECT p.post_id FROM " . POSTS_TABLE . " p WHERE p.topic_id = $topic_id $limit_posts_time LIMIT $start, " . $board_config['posts_per_page'];
    if ( !($result = $db->sql_query($sql)) )
    {
       message_die(GENERAL_ERROR, "Could not obtain post index information.", '', __LINE__, __FILE__, $sql);
    }
    while (list($p_id) = $db->sql_fetchrow($result)) {
        $p_array[] = $p_id;
    }
    $post_index = implode(",",$p_array);
    A list of post_id are obtained, now I slip it into the large query

    Codice:
    $sql = "SELECT u.username, u.user_id, u.user_posts, u.user_from, u.user_website, u.user_email, u.user_icq, u.user_aim, u.user_yim, u.user_regdate, u.user_msnm, u.user_viewemail, u.user_rank, u.user_sig, u.user_sig_bbcode_uid, u.user_avatar, u.user_session_time, u.user_allow_viewonline, u.user_allowsmile, p.*,  pt.post_text, pt.post_subject, pt.bbcode_uid
       FROM " . POSTS_TABLE . " p, " . USERS_TABLE . " u, " . POSTS_TEXT_TABLE . " pt
       WHERE p.post_id in ($post_index)
          AND pt.post_id = p.post_id
          AND u.user_id = p.poster_id
       ORDER BY p.post_time $post_time_order";
    And all is well.
    Il primo Code è il codice originario di viewtopic.php, il secondo tag Code sarebbe il testo da sostituirvi? Ed il terzo?

    Queste modifiche possono interessare l'errore che ho incollato nel primo post della discussione?

    Grazie mille per la risposta Evcz e Gianluca ^^

    //EDIT

    Su phpbb[dot]it ho trovato questo trucchetto per inibire la funzione di ricerca:

    In search.php, sostituire a questo codice:

    Codice:
    $template->pparse('body');
    quest'altra stringa:

    Codice:
    if ( $userdata['session_logged_in'] )
    {
            $template->pparse('body');
    }
    else
    {
            echo "Accesso Negato!";
    }
    In questo modo si dovrebbe bloccare l'accesso alla pagina di search.php
    Ho provato ad applicare la modifica ma la lentezza esagerata è rimasta immutata o.ò
    Ultima modifica di rinoadiaryforum : 25-08-2006 alle ore 20.18.01

  11. #11
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    non vedo la necessità di bloccare l'accesso alla ricerca...

    apri il file "search.php" e copia *tutta* la query... nell'ufficiale ( http://prdownloads.sourceforge.net/p...pBB-2.0.21.zip ) e' fatta cosi':

    Codice PHP:
    //
    // Look up data ...
    //
    if ( $search_results != '' )
    {
    if (
    $show_results == 'posts' )
    {
    $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    FROM "
    . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
    WHERE p.post_id IN (
    $search_results)
    AND pt.post_id = p.post_id
    AND f.forum_id = p.forum_id
    AND p.topic_id = t.topic_id
    AND p.poster_id = u.user_id"
    ;
    }
    nel tuo e' uguale? (non sembra visto l'explain che ti ha consigliato Gianluca... sempre che una query similare non venga usata in qualche altra mod che hai aggiunto...)...

    ripeto che per la grandezza del tuo forum *deve* funzionare cosi' come "mamma" l'ha fatto... altrimenti bisogna indagare meglio per capire cosa c'e' che non va :P
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  12. #12
    Guest

    Predefinito

    Quindi il problema potrebbe benissimo stare nelle mods installate.. ecco intanto quanto ricavo dal file search.php, dopo le parole "Look up data.."

    Codice:
    //
    	// Look up data ...
    	//
    	if ( $search_results != '' )
    	{
    		if ( $show_results == 'posts' )
    		{
    			$sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid  
    				FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt 
    				WHERE p.post_id IN ($search_results)
    					AND pt.post_id = p.post_id
    					AND f.forum_id = p.forum_id
    					AND p.topic_id = t.topic_id
    					AND p.poster_id = u.user_id";
    		}
    		else
    		{
    			$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
    				FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
    				WHERE t.topic_id IN ($search_results) 
    					AND t.topic_poster = u.user_id
    					AND f.forum_id = t.forum_id 
    					AND p.post_id = t.topic_first_post_id
    					AND p2.post_id = t.topic_last_post_id
    					AND u2.user_id = p2.poster_id";
    		}
    
    		$per_page = ( $show_results == 'posts' ) ? $board_config['posts_per_page'] : $board_config['topics_per_page'];
    
    		$sql .= " ORDER BY ";
    		switch ( $sort_by )
    		{
    			case 1:
    				$sql .= ( $show_results == 'posts' ) ? 'pt.post_subject' : 't.topic_title';
    				break;
    			case 2:
    				$sql .= 't.topic_title';
    				break;
    			case 3:
    				$sql .= 'u.username';
    				break;
    			case 4:
    				$sql .= 'f.forum_id';
    				break;
    			default:
    				$sql .= ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time';
    				break;
    		}
    		$sql .= " $sort_dir LIMIT $start, " . $per_page;
    
    		if ( !$result = $db->sql_query($sql) )
    		{
    			message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql);
    		}
    
    		$searchset = array();
    		while( $row = $db->sql_fetchrow($result) )
    		{
    			$searchset[] = $row;
    		}
    		
    		$db->sql_freeresult($result);		
    		
    		//
    		// Define censored word matches
    		//
    		$orig_word = array();
    		$replacement_word = array();
    		obtain_word_list($orig_word, $replacement_word);
    Edit

    Ho scaricato una versione "pura" di phpbb2.0.21 dal sito ufficiale, e questa è la query corrispondente su search.php

    Codice:
    //
    	// Look up data ...
    	//
    	if ( $search_results != '' )
    	{
    		if ( $show_results == 'posts' )
    		{
    			$sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid  
    				FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt 
    				WHERE p.post_id IN ($search_results)
    					AND pt.post_id = p.post_id
    					AND f.forum_id = p.forum_id
    					AND p.topic_id = t.topic_id
    					AND p.poster_id = u.user_id";
    		}
    		else
    		{
    			$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username, u.user_id, u2.username as user2, u2.user_id as id2, p.post_username, p2.post_username AS post_username2, p2.post_time 
    				FROM " . TOPICS_TABLE . " t, " . FORUMS_TABLE . " f, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TABLE . " p2, " . USERS_TABLE . " u2
    				WHERE t.topic_id IN ($search_results) 
    					AND t.topic_poster = u.user_id
    					AND f.forum_id = t.forum_id 
    					AND p.post_id = t.topic_first_post_id
    					AND p2.post_id = t.topic_last_post_id
    					AND u2.user_id = p2.poster_id";
    		}
    
    		$per_page = ( $show_results == 'posts' ) ? $board_config['posts_per_page'] : $board_config['topics_per_page'];
    
    		$sql .= " ORDER BY ";
    		switch ( $sort_by )
    		{
    			case 1:
    				$sql .= ( $show_results == 'posts' ) ? 'pt.post_subject' : 't.topic_title';
    				break;
    			case 2:
    				$sql .= 't.topic_title';
    				break;
    			case 3:
    				$sql .= 'u.username';
    				break;
    			case 4:
    				$sql .= 'f.forum_id';
    				break;
    			default:
    				$sql .= ( $show_results == 'posts' ) ? 'p.post_time' : 'p2.post_time';
    				break;
    		}
    		$sql .= " $sort_dir LIMIT $start, " . $per_page;
    
    		if ( !$result = $db->sql_query($sql) )
    		{
    			message_die(GENERAL_ERROR, 'Could not obtain search results', '', __LINE__, __FILE__, $sql);
    		}
    
    		$searchset = array();
    		while( $row = $db->sql_fetchrow($result) )
    		{
    			$searchset[] = $row;
    		}
    		
    		$db->sql_freeresult($result);
    Ultima modifica di rinoadiaryforum : 25-08-2006 alle ore 20.47.50

  13. #13
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    ehm... si il codice e' quello...

    in tutte le altre pag del tuo sito non trovi nessun'altra query simile a quella (in qualche mod)?

    ora guardandolo tutto vedo che order by e limit li mette da solo phpbb....

    mi viene il dubbio che mysql faccia da solo la traduzione
    IN ==>> =

    a quel punto ti conviene sul serio disabilitare la ricerca.... :S

    il codice che hai postato per inibire la ricerca e' un metodo valido... inizia col disabilitarla e vedi se il problema persiste... :S

    phpbb (almeno la vers 2.0.21...) permette di settare il parametro "search_flood_interval" che *dovrebbe* limitare il tempo in secondi tra una ricerca e l'altra che un utente può fare... prova a smanettare anche con quello casomai...

    comunque tieni per un po' la ricerca disabilitata.....
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  14. #14
    Guest

    Predefinito

    Ok adesso ri-applico quella modifica e la tengo attiva nelle prossime ore, per vedere cosa accade. Nel frattempo ho cercato in tutti i file php del mio sito questa stringa

    Codice:
    SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig
    e, oltre che in search.php, l'ho trovata (ripetuta due volte) anche in un file di MkPortal, include/php_board_functions.php

    Ecco il primo pezzo:

    Codice:
    $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    				FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
    					WHERE pt.post_id = p.post_id
    					AND f.forum_id = p.forum_id
    					AND p.topic_id = t.topic_id
    					AND p.poster_id = u.user_id
    					ORDER BY p.post_time DESC LIMIT 0,$limit";
    		$DB->query($sql);
    e poi il secondo (quasi identici)

    Codice:
    $sql = "SELECT pt.post_text, pt.bbcode_uid, pt.post_subject, p.*, f.forum_id, f.forum_name, t.*, u.username, u.user_id, u.user_sig, u.user_sig_bbcode_uid
    				FROM " . FORUMS_TABLE . " f, " . TOPICS_TABLE . " t, " . USERS_TABLE . " u, " . POSTS_TABLE . " p, " . POSTS_TEXT_TABLE . " pt
    					WHERE p.forum_id = $forum_active
    					AND pt.post_id = p.post_id
    					AND f.forum_id = p.forum_id
    					AND p.topic_id = t.topic_id
    					AND p.poster_id = u.user_id
    					GROUP BY t.topic_id
    					ORDER BY t.topic_id DESC LIMIT 0,$limit";
    		$DB->query($sql);
    Il primo pezzo segue alla funzione function get_last_posts($by, $sdate), il secondo a function get_board_news().

    -- // Edit
    Nonostante la modifica a search.php si accede ugualmente alla pagina di ricerca O.o

    http://rinoadiaryforum.altervista.org/phpbb/search.php

    Edit 2 (che non c'entra nulla, se devo aprire un nuovo topic scusate, lo faccio tranquillamente):

    La banda (traffico) dovrebbe essere mensile giusto? Ho attivato il sito intorno al giorno 19/06/2006, ma fino ad oggi (25/08) non è mai stata resettata, continuando ad aumentare (ora sfiora il 15%). Forse ho capito male io, ma una volta raggiunti i 30 giorni, la % di banda accumulata non dovrebbe essere azzerata e ricominciare ad aumentare partendo dallo 0%?
    Ultima modifica di rinoadiaryforum : 25-08-2006 alle ore 21.19.52

  15. #15
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    bene... ossia... male... direi che e' spiegato l'arcano... quella non e' una query proprio semplice... e usarla per generare gli ultimi 5 post non so se conviene... :S

    purtroppo non conosco mkportal..

    comunque nel tuo caso... il problema non sta nel forum, ne nella ricerca del forum... ma sta in mkporta che usa quella query TROPPE VOLTE... certo... si può contare sul caching dei dati... ma con migliaia di siti che girano su un server... per quanto grande sia la cache... fai presto a "ciclare"... quella query da solo su un mio forum quasi vuoto alla prima esecuzione (no cache) ci ha messo quasi 3secondi ad essere eseguita... un tempo ENORME

    penso che venga usata per genarare "Ultimi posts dal Forum" nella home del sito... per prima cosa verifica se puoi DISATTIVARE quel blocco... e lascia attiva la ricerca di phpbb

    su un mio sito uso una funzionalita' simile.. per leggere gli ultimi X thread risposti...

    la query l'hos trutturata così_
    Codice:
    SELECT f.forum_name, f.forum_id, t.topic_title, t.topic_replies, p.post_time, u.username, u.user_id, p.post_id
    FROM (
    (
    (
    phpbb_topics t
    INNER JOIN phpbb_posts p ON t.topic_last_post_id = p.post_id
    )
    INNER JOIN phpbb_forums f ON f.forum_last_post_id = p.post_id
    )
    INNER JOIN phpbb_users u ON u.user_id = p.poster_id
    )
    WHERE f.auth_view <2
    AND f.auth_read <2
    ORDER BY p.post_time DESC
    LIMIT 5
    in pratica alla fin fini e' come quella che hai tu... solo che non vado ad interessarmi del contenuto di phpbb_post_text... in quanto mi bastano i dettagli del topic...

    sempre una tabella temporanea viene creata... ma non vado a toccare la tabella + grossa di tutto il db (appunto il testo dei post...) non so se e' una cosa usabile... nel mio caso funziona perche' sul quel server tengo pochissimi siti... e le query eseguite sono sempre le stesse...

    comunque temo che tu debba contattare quelli di mkportal... e non quelli di phpbb :)

    La banda invice viene resettata in base al mese solare... non in base alla data di registrazione... quindi il primo del mese verrà resettata....
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  16. #16
    Guest

    Predefinito

    E l'arcano sembra essere svelato =P
    Della funzione "Ultimi posts dal Forum" nella home del portale non me ne faccio nulla, disattivo subito il blocco e vedo se ci sono miglioramenti. Stessa cosa per get_board_news, provo a disattivare anche questa.
    Edito il post per far sapere se cambia qualcosa, intanto ti ringrazio tantissimo Evcz per l'interessamento e la disponibilità!

    La banda invice viene resettata in base al mese solare... non in base alla data di registrazione... quindi il primo del mese verrà resettata....
    Quindi fra 5 giorni dovrebbe essere resettata, vediamo se succede ^^

    Edit

    I miglioramenti sono netti!

    /me inizia i lavori di costruzione del monumento per Evcz e Gianluca!

    Grazie

    PS Gianluca, sono fiduciosa, ma se dovessero esserci ancora problemi di sovraccarico al server nonostante queste modifiche, fammi sapere ^^
    Ultima modifica di rinoadiaryforum : 25-08-2006 alle ore 21.45.50

  17. #17
    L'avatar di Evcz
    Evcz non è connesso Utente storico
    Data registrazione
    31-05-2002
    Residenza
    Vicenza
    Messaggi
    5,670

    Predefinito

    bene, ero sicuro che il problema non poteva essere phpbb... altrimenti mi sarebbe caduto un mito :P

    penso possa tornare utile a molte altre persone segnalare questa problematica al team che sviluppa mkportal cosicche' possano pensare a soluzioni alternative per generare quel blocco... aggiornarlo ogni 5 minuti e fare caching in un file di testo potrebbe essere un compromesso se proprio non possono rinunciare a quelle query ;)
    There are three kinds of people in this world: people who watch things happen ... people who complain about things that happen ... and people who make things happen...

  18. #18
    Guest

    Predefinito

    Ho segnalato il problema sul forum di Mkportal, spero prendano in considerazione il post ^^"

  19. #19
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Da quello che vedo ora il tuo sito nel complesso è più veloce di un'ordine di grandezza.
    Gianluca

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •