Frage MySQL Auslastung

luni22

Grünschnabel
Moin Leute...

Ich stand gestern vor ein großes Problem dass ich euch mal schildern werde

und zwar habe ich eine Homepage wo auf der Startseite also der index ca. 46 bilder geladen werden abgerufen werden die bilder über mysql abfrage

nun hatte ich gestern mal 30 aktiv leute auf meiner Startseite und die verbindung zum mysql server wurde laufend unterbrochen von wegen es konnte keine verbindung hergestellt werden sobald es denn nur noch 25 leute wahren ging wieder alles gut hab denn mysql server neugestartet hat aber alles nichts gebracht vieleicht wurde ich auch geddos der mysql port ist auch geclosed liegt es vileicht daran oder ehr an meiner abfragen ?

hier ist mal meine index.class.php

vieleicht seht ihr dort ein fehler ich finde keinen

mfg

PHP:
<?php

/*
 ===================================================================
 * @Desc:       BEGIN index Class.
 *              
 * @Author:     Eskil    |   php-dev@hotmail.de
 * @Date:       29.10.2008
 * @Help:       http://board.gb4-you.de
 * @Vision:     GB4YOU SOURCE CODE V1.0
 ===================================================================
*/

class index
{

             public function index()
             {
                       global $temp, $conf, $db;


                          /*
                           ===================================================================
                           * @Desc:       BEGIN Neusten Bilder.
                           ===================================================================
                          */

                                     $this->sql            =    "SELECT * FROM pics ORDER BY id DESC LIMIT 4";
                                     $result               =    $db->query($this->sql);
                             
                                          while ($bildnew                  =    $db->fetch_array($result))
                                          {
                                                 $this->bild_new_array[]   =    $bildnew;
                                          }

                                     $db->free($result);

                          /*
                           ===================================================================
                           * @Desc:       BEGIN List Categorie Bilder.
                           ===================================================================
                          */
                                     $this->sql1            =    "SELECT * FROM main_category ORDER BY id";
                                     $result1               =    $db->query($this->sql1);
                             
                                  
                                                 $catbild                     =    0;
                                          while ($bildcat                     =    $db->fetch_array($result1))
                                          {
                                                 $id                          =    $bildcat['id'];
                                                 $bild[$catbild]['title']     =    $bildcat['title'];


                                     $this->sql2            =    "SELECT * FROM pics WHERE main_category = $id ORDER BY RAND() LIMIT 4";
                                     $result2               =    $db->query($this->sql2);
                              
                                    
                                          while ($bildlist                         =    $db->fetch_array($result2))
                                          {
                                                 $bild[$catbild]['unterbild'][]    =    $bildlist;
                                          }  
      
                                     $catbild++;

                                          }

                                     $db->free($result1);
                                     $db->free($result2);


                          /*
                           ===================================================================
                           * @Desc:       BEGIN Übergabe Template index.tpl.
                           ===================================================================
                          */


                              $temp->assign(array(
                                                  'L_BILD_NEW'                => $this->bild_new_array,
                                                  'L_BILD_CATEGORIE'          => $bild
                                                 ));
                             
  
                             
                              $temp->display('index.tpl');

             }

}
$index = new index();
?>

EDIT: hier noch die db class

PHP:
<?php

class db
{

    public $DB_DEBUG = true;
    public $DB_FAIL  = true;



            public function connect() 
            {
                   global $conf, $db;
                          
                          $this->dbhost   =   trim($conf->dbhost);
                          $this->dbuser   =   trim($conf->dbuser);
                          $this->dbpass   =   trim($conf->dbpass);
                          $this->dbname   =   trim($conf->dbname);


	              if (!$connect = mysql_pconnect($this->dbhost, $this->dbuser, $this->dbpass)) 
                     {

		               if ($this->DB_DEBUG) 
                             {
			                 echo "<h2>Can't connect to $this->dbhost as $this->dbuser</h2>";
			                 echo "<p><b>MySQL Error</b>: ", mysql_error();
		               } else {
			                 echo "<h2>Database error encountered</h2>";
		               }

		               if ($this->DB_FAIL) 
                             {
			                 echo "<p>This script cannot continue, terminating.";
			                 die();
		               }

	              }

	              if (!mysql_select_db($this->dbname)) 
                     {

		               if ($this->DB_DEBUG) 
                             {
			                 echo "<h2>Can't select database $this->dbname</h2>";
			                 echo "<p><b>MySQL Error</b>: ", mysql_error();
		               } else {
			                 echo "<h2>Database error encountered</h2>";
		               }

		               if ($this->DB_FAIL) 
                             {
			                 echo "<p>This script cannot continue, terminating.";
			                 die();
		               }

	             }
	             return $connect;
              
             }


             public function query($qry, $debug = false, $on_debug = true, $ent = false) 
             {


	             if ($debug) 
                    {
		                       echo "<pre>" . htmlspecialchars($qry) . "</pre>";

		      if ($on_debug) 
                                     die;
	             }

	                 $sql    =    mysql_query($qry);

	             if (!$sql && ! $ent) 
                    {

		             if ($this->DB_DEBUG) 
                           {

                               $this->query = $qry;

			                 echo "<pre><font color=\"black\"> " . Date('m/d/Y H:i:s') . "</font></pre>
                                                 <b>
                                                       <font color=\"red\"><pre>Fehler: Dein Query enthält fehler</pre></font>
                                                </b>
			                                  <pre><b><font color=\"black\">Query:</font></b> " . htmlspecialchars($this->query) . "</pre>
                                                       <pre><b><font color=\"black\">Fehlercode:</font><font color=\"red\">",mysql_errno(),"</font></b></pre>
                                                       <pre><b><font color=\"black\">Fehler:</font></b> ", mysql_error(),"
                                      </pre>";
		             } else {
			                 echo "<h2>Database error encountered</h2>";
		             }

		             if ($this->DB_FAIL) 
                           {
			                 echo "<p>This script cannot continue, terminating.";
			                 die();
		             }
	             }

	             return $sql;
             }



             public function fetch_array($sql) 
             {

                    return @mysql_fetch_array($sql);

             }

             public function fetch_assoc($sql) 
             {

                    return @mysql_fetch_assoc($sql);

             }


             public function fetch_row($sql) 
             {

                    return @mysql_fetch_row($sql);

             }

             public function object($sql) 
             {

                    return @mysql_fetch_object($sql);

             }

             public function rows($sql) 
             {

                    return @mysql_num_rows($sql);

             }

             public function affected_rows() 
             {

                    return @mysql_affected_rows();

             }

             public function insert_id() 
             {

                    return @mysql_insert_id();

             }

             public function free($sql) 
             {

	            return @mysql_free_result($sql);

             }

             public function fields($sql) 
             {

	            return @mysql_num_fields($sql);

             }

             public function field_name($sql, $no) 
             {

	            return @mysql_field_name($sql, $no);

             }

             public function data_seek($sql, $row) 
             {

	            if (db_num_rows($sql)) 
                   { 
                        return @mysql_data_seek($sql, $row); 
                   }
             }
}
             $db   =  new db();
            
?>
 
Zuletzt bearbeitet:
Das Problem sind die persistenten Verbindungen - änder mal lieber von mysql_pconnect() auf mysql_connect() - dann sollte das Problem der Vergangenheit angehören! Denn mit persistenten Verbindungen muss man sicherstellen können, dass einige Hundert Verbindungen gleichzeitig aufgemacht werden können.
 
Habs auch schon gelesen das es wohl daran liegt habs schon abgeändert mal sehen was kommt

Trotzdem Danke für deine antwortung
 
Zurück