Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    5

    tempi di risposta MySQL

    ciao a tutti....sto analizzando i tempi di risposta a diverse query con mysql(console) e la prima volta che ne eseguo una il risultato è diverso e più alto di tutti i successivi che a differenza di decimi rimangono costanti;
    questo è dovuto alla query cache, giusto??
    se voglio non usarla mai come posso fare?

  2. #2
    Se non e' abilitata non credo usi la cache per conto suo. Piu' facile che la prima volta faccia un controllo sui diritti dell'utente che esegue la query e non piu' nelle successive.

    Prova a rilasciare la connessione oppure a cambiare anche di poco la query. la cache viene utilizzata solo se la query e' precisa alla precedente.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    5
    se guardo con "show variables like 'query_cache_size' " mi da 0, quindi dovrebbe essere 0 la sua dimensione....però....
    ti faccio vedere le mie prove (la query n.1 ritorna 4000 record, la n.2 10500):

    1
    select * from studente21k
    where (citta='MO' or citta='RE' or citta='BO' or citta='FI') and (acorso=1 or acorso=2)

    2
    select * from studente21k
    where acorso=1 or acorso=2 or acorso=3


    se eseguo appena aperta la connessione la 1 mi da=0.500, se subito dopo eseguo la 2 mi da=0.060.....se invece dopo aver riaperto la connessione inverto l'ordine, per la 2 ci mette 0.600, per la 1 0.040.....questo sembra voler dire che una volta agito su una tabella, le sue info rimangono da qualche parte, se no come fa a essere così più veloce??

    P.S.: ho provato a scrivere alla community di MySQL, ma gli ho scritto in italiano e non mi hanno risposto....scrivere tutto questo in inglese ci metterei 2 giorni

    se hai qualche idea grazie....

  4. #4
    credo sia come ti ho gia' detto.

    Alla prima query che fai dopo la connessione vengono controllati i privilegi dello user. dopo di che, per lo stesso tipo di query sulla stessa tabella non piu'.

    Se cambi tabella ricontrolla i privilegi.... e quindi impiega di piu'.

    Se cambi la condizione where, e quindi invalidi di certo la cache, i tempi saranno comunque ancora piu' brevi della prima query....

    ergo: alla prima query di un dato enunciato su una determinata tabella mysql controlla i privilegi dello user.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2006
    Messaggi
    5
    ah ok....ma è possibile sapere quanto ci mette per recuperare solo i dati senza che siano nella cache e quindi senza che controlli i privilegi??

  6. #6
    Originariamente inviato da lugos84
    ah ok....ma è possibile sapere quanto ci mette per recuperare solo i dati senza che siano nella cache e quindi senza che controlli i privilegi??
    mettici un contatore e prova. Se la cache e' disattivata stai pur certo che non la usa. Anzi a volte viene difficile fargliela usare se il result set e' troppo piccolo. Per recuperare i dati poi dipende da cosa intendi: se fare la query ed acquisire il result set oppure inviare la stampa al client.... qui i tempi potrebbero essere alla fantasia della connessione al client e non di mysql.

    Il tempo e' quello che ci vuole, ci sara' sempre qualche differenza. Dipende da come e' organizzata la tabella, specialmente dagli indici e dal tipo di query.

    Usa microtime() lo metti in una pagina php e prova dal tuo script. Hai pure un esempio di uso nel manuale.

    http://it2.php.net/manual/it/function.microtime.php

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.