Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    97

    Aggiornamento Lentissimo

    Ciao a tutti,
    devo aggiornare una tabella Mysql (su aruba), leggendo i dati da un file xml, ma impiega troppo tempo, oltre 1 ora, il numero di record sono circa 10.000!
    sbaglio qualcosa? è normale?
    premetto che leggere e stampare a video solo il file xml, senza query, impiega 10 secondi,
    posto il codice incriminato

    Codice PHP:
    foreach($xml->foto as $User)    
    {
        
                
    $i_1 $User->fotoid;
                
    $i_2 $User->UserId;    
                    
    $i_3 = (date("y-m-d"));
    $check_sql = @mysql_query("SELECT album, i_codice FROM immobili WHERE fotoid='$i_1' and i_codice='$i_2'");
    $num_rows = @mysql_num_rows($check_sql);
    if(
    $num_rows == 1) {
    mysql_query("UPDATE album SET i_data_m='$i_3' WHERE fotoid = '$i_1' and i_codice='$i_2'");
    echo
    "aggiornato $i_1 
    "
    ;
            } else {
    echo
    "inserisco nuovo record
    "
    ;


  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Non sembra ci sia niente di sbagliato.
    Hai provato a fare la stessa cosa in locale? Quanto ci mette?

    Evidentemente il server dove risiede il DB è molto lento, anche perché sarà sicuramente condiviso con chissà quanti altri utenti, non c'è solo il tuo DB lì sopra.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    97
    no in locale non ho provato, farò un test stasera! grazie

    cmq le prove le ho fatte di mattina, sera, pomeriggio, notte ecc. ma è sempre la solita storia!

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quanti record ci sono nella tabella immobili ? Hai un indice su quella tabella con fotoid e i_codice ?
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    97
    ciao badaze, nella tabella immobili ci sono circa 57000 record!

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    97
    come indice ho solo l' id auto incrementatore

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Prova a crearne uno sui due campi della clausola where. Dovrebbe velocizzare parecchio in quanto non leggera tutti i 57.000 records 10.000 volte.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    97
    Grazie Badaze, sei un grande
    era tempo che ci sbattevo la testa, provavo e riprovavo , in effetti ho creato i 2 indici, la query ci ha messo meno di 1 munito!


  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    97
    mi potresti spiegare meglio la storia degli indici? oppure indirizzarmi a qualche pagina?
    Grazie ancora!!

  10. #10
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Immagina un dizionario. Se non fosse in ordine alfabetico dovresti leggere tutte le parole prima di trovare quella che t'interessa. Con l'ordine alfabetico la trovi in poco tempo. Per l'indice è la stessa cosa.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.