Argomenti: 1581    Messaggi: 8758   Risposte: 7185      
(Ultime News)------|    Nasce Cleanuke.it supporto ufficiale al cms - (18-06-2011 - 23:04:54 - di matteoiamma)    |------|    Rilasciato Clean Nuke 1.7 - (05-05-2011 - 19:49:43 - di matteoiamma)    |------|    Iamma Multi Blogs: Blogs per gli utenti del nuke - (19-03-2011 - 20:41:08 - di matteoiamma)    |------|    Rilasciato Clean Nuke 1.6 - (13-03-2010 - 20:12:46 - di matteoiamma)    |------|    Nuova Community Italiana: nasce mondophpnuke.com - (11-02-2010 - 22:08:51 - di matteoiamma)    |------|    Rilasciato Clean Nuke 1.5! - (16-12-2009 - 00:44:55 - di matteoiamma)    |------
Regolamento:
Le principali regole da rispettare per poter far parte della community... cosigliamo di visionarle per evitare malintesi.
Script:
Per motivi di sicurezza il sistema blocca l'inserimento di alcuni script per sapere come fare cliccare qui

Webother.com :: Leggi il Topic - problema provider : numero molto elevato di query
 FAQ  •  Cerca  •  Lista degli utenti  •  Gruppi utenti  •  Profilo  •  Messaggi Privati  •  Login

Information problema provider : numero molto elevato di query

Nuovo Topic Rispondi
Indice del forum » Sicurezza   
Precedente :: Successivo
AutoreMessaggio
nemina
Frequentatore
Frequentatore


Registrato: Jun 09, 2013
Messaggi: 5


Oggetto: problema provider : numero molto elevato di query Rispondi citando

Salve,
Ho nuke 7.6...
ieri mi è arrivata una mail dal mio provider che ospita il mio db mysql ...ma non capisco cosa dovrei fare:

in tutto questo è da un po di mesi che il mio portale è instasato da circa 500 visitatori al giorno costanti..e iscrizioni spam...
faccio sempre ottimizza e le tabelle che si riempon subito sono
nuke_bbsearch_results
nuke_bbsessions
ma soprattutto nuke_session

Gentile Cliente,
il database a lei intestato ha creato problemi
al server DB Mysql su cui risiede a causa di query
effettuate su di esso.

E' stato rilevato un numero molto elevato e costante
di query, che creano rallentamenti sul server, della quali
riporto qui di seguito un esempio:


UPDATE nuke_stats_hour
SET hits=hits+1
WHERE (year='2013')
AND (month='06')
AND (date='07')
AND (hour='15')


Le suggeriamo di rivedee l'applicazione che genera tali query e
di applicare le necessarie misure affinché il problema non si
ripresenti (ad es. tramite l'applicazione di indici alla tabella
in questione).


In caso contrario, se il problema dovesse ripresentarsi, potremmo
dover ricorrere al blocco temporaneo della tabella o dell'intero
database.



MessaggioInviato:
Dom Giu 09, 2013 10:03 am
Top of PageProfiloMessaggio privato
Sertek
Affezionato
Affezionato


Registrato: May 25, 2005
Messaggi: 58


Oggetto: Rispondi citando

E' molto tempo che non programmo in php ma siccome è un problema
anche mio, ridurre query e dimensione database, ci provo.

Apri il file counter.php che si trova nella cartella includes

nell'ultima riga aggiungi due slash, per commentarla:

Codice:
//$db->sql_query("UPDATE ".$prefix."_stats_hour SET hits=hits+1 WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate') AND (hour='$nowHour')");

d'ora in avanti non aggiungerà più le statistiche orarie.

Ciao Wink



MessaggioInviato:
Sab Giu 15, 2013 2:40 pm
Top of PageProfiloMessaggio privato
nemina
Frequentatore
Frequentatore


Registrato: Jun 09, 2013
Messaggi: 5


Oggetto: Rispondi citando

Ciao!
Grazie mille fatto...vediamo come va...
per ora ho disabilitato anche le iscrizioni...(anche se devono essere approvate dall amministratore cmq 50 al giorno è un problema)...
ma devo trovare un modo per non avere piu le visite spam...
Laughing



MessaggioInviato:
Sab Giu 15, 2013 6:17 pm
Top of PageProfiloMessaggio privato
nemina
Frequentatore
Frequentatore


Registrato: Jun 09, 2013
Messaggi: 5


Oggetto: Rispondi citando

mmm provato ma non è cambiato molto
In total hits il conteggio continua...
come fare per far diminuire qs?

nuke_bbsearch_results 4 mb
nuke_bbsessions 55 mb
nuke_session 41 mb



MessaggioInviato:
Dom Giu 16, 2013 10:09 am
Top of PageProfiloMessaggio privato
Sertek
Affezionato
Affezionato


Registrato: May 25, 2005
Messaggi: 58


Oggetto: Rispondi citando

nemina ha scritto:
mmm provato ma non è cambiato molto
In total hits il conteggio continua...
come fare per far diminuire qs?

nuke_bbsearch_results 4 mb
nuke_bbsessions 55 mb
nuke_session 41 mb


Le sessioni sono un modo semplice per archiviare dati per singoli utenti e vengono inviati al browser tramite i cookie di sessione per ottimizzare la navigazione.
Per questo non puoi fare nulla perché gestito da phpnuke.
Se hai molti utenti e normale che i dati di sessione sono di parecchi MB.

Prima di fare un backup del database bisognerebbe fare Optimize DB
da pannello di amministrazione per svuotare i dati non più utilizzati.

Per le query al server Mysql stò modificando anche il mio modulo statistiche
per togliere tutte quelle che riguardano l'ora, per me inutili.
Se hai un po di pazienza posto tutte le modifiche appena finito di testatarle.

Ciao Wink



MessaggioInviato:
Dom Giu 16, 2013 11:09 am
Top of PageProfiloMessaggio privato
Sertek
Affezionato
Affezionato


Registrato: May 25, 2005
Messaggi: 58


Oggetto: Rispondi citando

Eccomi qua

Apri il file counter.php e commenta questa parte di codice (dalla riga 96 a 105):
Codice:
/* questo crea le 24 ore nel database con statistiche a zero
$sql = "SELECT hour FROM ".$prefix."_stats_hour WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')";
$result = $db->sql_query($sql);
$numrows = $db->sql_numrows($result);

if ($numrows <= 0) {
    for ($z = 0;$z<=23;$z++) {
   $db->sql_query("INSERT INTO ".$prefix."_stats_hour VALUES ('$nowYear','$nowMonth','$nowDate','$z','0')");
    }
}*/


Apri il file index.php del modulo Statistics e alle righe 224 - 225
sostituisci:
Codice:
 echo ""._MOSTHOUR.": $hour "._ON." $month $date, $year ($hits "._HITS.")<br><br>"
   ."[ <a href=\"modules.php?name=$module_name\">"._RETURNBASICSTATS."</a> ]</center>";

Con:
Codice:
 // echo ""._MOSTHOUR.": $hour "._ON." $month $date, $year ($hits "._HITS.")<br><br>" // ora con piu traffico da togliere
    echo "<br><br>[ <a href=\"modules.php?name=$module_name\">"._RETURNBASICSTATS."</a> ]</center>";


Poco sotto alla riga 235 commenta questa riga:
Codice:
  // showHourlyStats($nowyear,$nowmonth,$nowdate); // modifica per togliere le statistiche orarie

Riga 269 commenta la funzione DailyStats
Codice:
/* modificato per statistiche orarie (pagina richiamata cliccando sul giorno)
function DailyStats($year,$month,$date){
    global $sitename, $module_name;
    include("header.php");
    title("$sitename "._STATS."");
    opentable();
    $year = intval($year);
    $month = intval($month);
    $date = intval($date);
    showHourlyStats($year,$month,$date);
    echo "<BR>";
    echo "<center>[ <a href=\"modules.php?name=$module_name\">"._BACKTOMAIN."</a> | <a href=\"modules.php?name=$module_name&amp;op=Stats\">"._BACKTODETSTATS."</a> ]</center>";
    closetable();
    include("footer.php");
}*/

Nella funzione ShowDailyStats modificare
Codice:
   if ($date != $nowdate) {
       echo "<a href=\"modules.php?name=$module_name&amp;op=DailyStats&amp;year=$year&amp;month=$month&amp;date=$date\" class=\"hover_orange\">";
       echo $date;
       echo "</a>";
   } else {
       echo $date;
   }

Con
Codice:
   if ($date != $nowdate) {
      // echo "<a href=\"modules.php?name=$module_name&amp;op=DailyStats&amp;year=$year&amp;month=$month&amp;date=$date\" class=\"hover_orange\">";
       echo $date;
      // echo "</a>"; // modificato per togliere la pagina delle statistiche oraria
   } else {
       echo $date;
   }

Commentare la funzione showHourlyStats
Codice:

/* modificato per togliere statistiche orarie
function showHourlyStats($year,$month,$date){
    global $prefix,$bgcolor1,$bgcolor2,$db, $ThemeSel;
    $l_size = getimagesize("themes/$ThemeSel/images/leftbar.gif");
    $m_size = getimagesize("themes/$ThemeSel/images/mainbar.gif");
    $r_size = getimagesize("themes/$ThemeSel/images/rightbar.gif");
    $resulttotal = $db->sql_query("SELECT sum(hits) as TotalHitsHour from ".$prefix."_stats_hour where year='$year' and month='$month' and date='$date'");
    list($TotalHitsHour) = $db->sql_fetchrow($resulttotal);
    $db->sql_freeresult($resulttotal);
    $nowdate = date("d-m-Y");
    $nowdate_arr = explode("-",$nowdate);
    echo "<center><b>"._HOURLYSTATS." ";
    echo getmonth($month)." ".$date.", " .$year."</b></center><br>";
    echo "<table align=\"center\" bgcolor=\"#000000\" cellspacing=\"1\" cellpadding=\"3\" border=\"0\">";
    echo "<tr><td width=\"25%\" bgcolor=\"$bgcolor2\">"._HOUR."</td><td bgcolor=\"$bgcolor2\" width=\"70%\">"._SPAGESVIEWS."</td></tr>";
    for ($k = 0;$k<=23;$k++) {
   $result = $db->sql_query("select hour,hits from ".$prefix."_stats_hour where year='$year' and month='$month' and date='$date' and hour='$k'");
   if ($db->sql_numrows($result) == 0){
       $hits=0;
   } else {
       $row = $db->sql_fetchrow($result);
       $hour = intval($row['hour']);
       $hits = intval($row['hits']);
   }
   echo "<tr><td bgcolor=\"$bgcolor1\">";
   if ($k < 10) {
       $a = "0$k";
   } else {
       $a = $k;
   }
   echo "$a:00 - $a:59";
   $a = "";
   echo "</td><td bgcolor=\"$bgcolor1\">";
   if ($hits == 0) {
       $WidthIMG = 0;
       $d_percent = 0;
   } else {
       $WidthIMG = round(100 * $hits/$TotalHitsHour,0);
       $d_percent = substr(100 * $hits / $TotalHitsHour, 0, 5);
   }
   echo "<img src=\"themes/$ThemeSel/images/leftbar.gif\" Alt=\"\" width=\"$l_size[0]\" height=\"$l_size[1]\"><img src=\"themes/$ThemeSel/images/mainbar.gif\" height=\"$m_size[1]\" width=",$WidthIMG * 2," Alt=\"\">"
       ."<img src=\"themes/$ThemeSel/images/rightbar.gif\" Alt=\"\" width=\"$r_size[0]\" height=\"$r_size[1]\"> $d_percent% ($hits)</td></tr>"
       ."</td></tr>";
    }
    $db->sql_freeresult($result);
    echo "</table>";
}*/

In questo modo ho eliminato tutto quello che riguarda le statistiche orarie che generano molte query inutili.

Ciao Wink



MessaggioInviato:
Mar Giu 18, 2013 9:56 am
Top of PageProfiloMessaggio privato
nemina
Frequentatore
Frequentatore


Registrato: Jun 09, 2013
Messaggi: 5


Oggetto: Rispondi citando

ciao..innanzitutto grazie mille..
Scusa la mia ignoranza ma commentare vuol dire aggiungere due slash all inizio giusto?
*/ alla fine a ke serve?

ad esempio nel counter.php
devo mettere quello ke hai incollato tu piu le slash?

Codice:
/* questo crea le 24 ore nel database con statistiche a zero
//$sql = "SELECT hour FROM ".$prefix."_stats_hour WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')";
$result = $db->sql_query($sql);
$numrows = $db->sql_numrows($result);

if ($numrows <= 0) {
    for ($z = 0;$z<=23;$z++) {
   $db->sql_query("INSERT INTO ".$prefix."_stats_hour VALUES ('$nowYear','$nowMonth','$nowDate','$z','0')");
    }
}*/


oppure devo mettere solo le slash

Codice:
//$sql = "SELECT hour FROM ".$prefix."_stats_hour WHERE (year='$nowYear') AND (month='$nowMonth') AND (date='$nowDate')";
$result = $db->sql_query($sql);
$numrows = $db->sql_numrows($result);

if ($numrows <= 0) {
    for ($z = 0;$z<=23;$z++) {
   $db->sql_query("INSERT INTO ".$prefix."_stats_hour VALUES ('$nowYear','$nowMonth','$nowDate','$z','0')");
    }
}




MessaggioInviato:
Dom Giu 23, 2013 11:01 am
Top of PageProfiloMessaggio privato
Sertek
Affezionato
Affezionato


Registrato: May 25, 2005
Messaggi: 58


Oggetto: Rispondi citando

Per commentare una singola riga si usa il doppio slash //

Per commentare più righe contemporaneamente si usano
Codice:
/* codice */

all'inizio e alla fine della parte che si vuole commentare.
Fai senza aggiungere le due slash

Ciao Wink



MessaggioInviato:
Dom Giu 23, 2013 11:59 am
Top of PageProfiloMessaggio privato
nemina
Frequentatore
Frequentatore


Registrato: Jun 09, 2013
Messaggi: 5


Oggetto: Rispondi citando

mmm...quindi riferendosi al file counter ad esempio...qual'è quello giusto? il primo vero?



MessaggioInviato:
Dom Giu 23, 2013 12:06 pm
Top of PageProfiloMessaggio privato
Sertek
Affezionato
Affezionato


Registrato: May 25, 2005
Messaggi: 58


Oggetto: Rispondi citando

Si anche se non è necessario aggiungere le due slash

Se sostituisci i codici originali con quelli che ho postato dovresti essere a posto
Ciao Wink



MessaggioInviato:
Dom Giu 23, 2013 1:01 pm
Top of PageProfiloMessaggio privato
Mostra prima i messaggi di:   
Tutti i fusi orari sono GMT + 2 ore
Nuovo Topic Rispondi
Indice del forum » Sicurezza  

Vai a:  
Key
  Non puoi inserire nuovi Topic in questo forum
Non puoi rispondere ai Topic in questo forum
Non puoi modificare i tuoi messaggi in questo forum
Non puoi cancellare i tuoi messaggi in questo forum
Non puoi votare nei sondaggi in questo forum

Powered by phpBB © 2001, 2005 phpBB Group



http://www.top100italiana.com

 

Tutti i diritti riservati Copyright © 2003-2024