Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. ottimizzare Mysql con php
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • massimux
      massimux Moderatore • 9 ott 2006, 13:58 ultima modifica di

      ottimizzare Mysql con php

      Ciao ragazzuoli esiste uno script che mi permette di ottimizzare il db da una pagina php?

      perchè molte volte trovo scomodo doverlo fare tramite db stesso.

      una altra cosa come mai c'è questo problema che le tabelle hanno un surplus di dati? deriva da me o dal db stesso??

      thx^_^

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
        Caricamento altri post
        Rispondi
        • Topic risposta
        Effettua l'accesso per rispondere
        • Da Vecchi a Nuovi
        • Da Nuovi a Vecchi
        • Più Voti
         

      • S
        senamion User Attivo • 9 ott 2006, 14:05 ultima modifica di

        Ti puoi creare tu stesso alcune righe in php che aprono la connessione e fanno l'optimize delle tabelle. Sono poche righe di codice.
        Le tabelle hanno un surplus di dati in caso di cancellazioni in quanto al momento del delete i dati non vengon fisicamente cancellati ma solo flaggati come "deleted". Vengono poi riutilizzati da nuovi inserimenti (e quindi non si perde spazio)

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • massimux
          massimux Moderatore • 9 ott 2006, 17:11 ultima modifica di

          non so creare quelle poche righe nel senso che non so che funzione o altro adoperare^_^

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • massy
            massy Moderatore • 9 ott 2006, 21:59 ultima modifica di

            http://dev.mysql.com/doc/refman/4.1/en/optimize-table.html

            :ciauz:

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • massimux
              massimux Moderatore • 10 ott 2006, 06:17 ultima modifica di

              [php]
              <?
              $host = "host_database";
              $user = "username";
              $pass = "password";
              $db_name = "nome_del_database";

              $db = mysql_connect($host, $user, $pass);
              mysql_select_db($db_name, $db);

              echo "Ottimizzazione DataBase in corso...";
              $SQL = "OPTIMIZE TABLE ";
              $result = mysql_list_tables($DATABASE);
              $i = 0;
              while ($i < mysql_num_rows($result)) {
              $name_table = mysql_table_name($result, $i);
              echo "Ottimizzazione tabella: $name_table .....<BR>";
              $SQL .= $name_table;
              $SQL .= ",";
              $i++;
              }
              $SQL = substr($SQL,0,strlen($SQL)-1);
              $result_set = mysql_query($SQL);
              mysql_free_result($result_set);

              ?>
              [/php]

              a chiunque servisse^_^

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • massimux
                massimux Moderatore • 11 ott 2006, 06:06 ultima modifica di

                [php]
                <?
                $host = "host_database";
                $user = "username";
                $pass = "password";
                $db_name = "nome_del_database";

                $db = mysql_connect($host, $user, $pass);
                mysql_select_db($db_name, $db);

                echo "Ottimizzazione DataBase in corso...";
                $SQL = "OPTIMIZE TABLE ";
                $result = mysql_list_tables($db_name);
                $i = 0;
                while ($i < mysql_num_rows($result)) {
                $name_table = mysql_tablename($result, $i);
                echo "Ottimizzazione tabella: $name_table .....<BR>";
                $SQL .= $name_table;
                $SQL .= ",";
                $i++;
                }
                $SQL = substr($SQL,0,strlen($SQL)-1);
                $result_set = mysql_query($SQL);
                mysql_free_result($result_set);

                ?>
                [/php]

                ragazzi dopo aver sistemato lo script per un errorino ora mi trovo questo errore:

                il valore dato per mysql_free_result() non è giusto/corretto.

                qualcuno può controllarlo? thx^_^

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • C
                  christrato User Newbie • 14 ott 2006, 17:10 ultima modifica di

                  $db = mysql_connect($host, $user, $pass);

                  deve essere così:

                  $db = mysql_connect($db_host, $db_user, $db_pass);

                  cmq il resto mi sembra sia corretto xchè l'ho provato e funziona.

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • massy
                    massy Moderatore • 15 ott 2006, 00:44 ultima modifica di

                    $db = mysql_connect($host, $user, $pass);

                    deve essere così:

                    $db = mysql_connect($db_host, $db_user, $db_pass);

                    E perché?

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • massimux
                      massimux Moderatore • 15 ott 2006, 12:41 ultima modifica di

                      massy puoi verificare se funge? ti prego perchè a me nn va

                      @cristiano

                      ma che dici? ti rendi conto che così facendo imposterei variabili inesistenti?:D

                      a buon rendere

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • C
                        christrato User Newbie • 15 ott 2006, 16:41 ultima modifica di

                        ah già... un lapsus, è che io sn abituato ad usare quelle variabili x quei dati. cmq l'ho provato e funziona!

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • massimux
                          massimux Moderatore • 18 ott 2006, 06:11 ultima modifica di

                          tu dici che funge ma a me non ottimizza nada....:S sei sicuro di ciò che dici?

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • S
                            senamion User Attivo • 18 ott 2006, 08:01 ultima modifica di

                            Puoi fare una prova, prima della mysql_query fai:

                            echo $SQL;

                            E vedi cosa ti scrive, poi, se ti sembra corretto, lo vai a scrivere in phpmyadmin e vedi cosa ti risponde e se effettivamente fa quello che ti aspetti!

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • C
                              cirpack User • 26 ott 2006, 17:04 ultima modifica di

                              Prova questo script:
                              <?
                              if (!ini_get('safe_mode')) {
                              set_time_limit(2400);
                              }
                              $host="localhost";
                              //oppure $host="192.168.0.1";
                              $user ="nome utente amministratore db";
                              $pass = "password utente";
                              $DB_name="nome del database da ottimizzare";
                              $msg="";
                              $link = mysql_connect($host,$user,$pass);
                              if ( ! $link ) die("Errore ...impossibile connettersi a MYSQL");
                              if([EMAIL="!@mysql_select_db($DB_name,$link"]!@mysql_select_db($DB_name,$link[/EMAIL])) die("Errore ...impossibile connettersi al DataBase".mysql_error());
                              }
                              echo <<<EOT
                              <html><head><title>Ottimizzazione Tabelle</title>
                              <STYLE TYPE="text/css">
                              BODY{BACKGROUND-COLOR: #dfdfd1;FONT:BOLDER 14px VERDANA,ARIAL,MS Sans Serif;color:red;}
                              </STYLE>
                              </head>
                              <body >
                              <center>
                              <h3>Ottimizzazione Tabelle<br> $DB_user</h3>
                              <p>
                              EOT;
                              $query="SHOW TABLE STATUS FROM $DB_name ";
                              $result= mysql_query ($query) or die ("errore : ". mysql_error() );
                              if(mysql_num_rows($result)){
                              while($row=mysql_fetch_array($result)){
                              $query='OPTIMIZE TABLE '.$row[0];
                              $result1=mysql_query($query) or die("errore : ". mysql_error()."\n");
                              $row1=mysql_fetch_row($result1);
                              if($row1[2]!='status') echo "Tabella: $row[0] <br> - $row1[2]: $row1[3]<br>";
                              else echo "Tabella: $row[0] O.K.<br>";
                              }
                              }
                              echo <<<EOT
                              <script>
                              alert("Ottimizzazione O.K.")
                              self.close()
                              </script>
                              EOT;
                              exit;
                              ?>

                              Io lo uso da tempo e funziona
                              Ciao cirpack

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti