Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    691

    operazione di scrittura sul db che tarda 10 millisecondi

    Ciao a tutti,

    una pagina web, per un servizio che offriamo, impiega dai 10 ai 20 millecondi per essere generata, legge un record da una tabella. Successivamente scrivo un record in un'altra tabella di registro accesso.
    Possibile che la semplice scrittura di un record all'interno del db(un registro di accesso), record composto da 3 colonne, contenente un id a una tabella, un id che fa riferimento all'utente e un idirizzo ip, incrementi di 10 millisecondi la creazione di questa pagina web?

    La scrittura di un semplice record all'interno del db può tardare 10 millisecondi?

    Grazie,
    Roberto
    Ultima modifica di robynosse; 04-06-2020 a 17:26

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    758
    Se la tabella è grande e c'è un indice può tardare anche di più.
    La tua ha uno o più indici? Quante righe contiene?

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    691
    Ho provato a elminare l'idice su una colonna, la chiave primaria, cancellare tutti i record ma non cambia il tempo?
    Se fosse MyISAM, visto che adesso è InnoDB, potrebbe aiutare?

  4. #4
    come hai calcolato questo tempo? se provi la stessa insert da console (typo phpmyadmin) ottieni gli stessi tempi?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    691
    Ho provato a convertire la tabella in MyISAM e i tempi si sono ridotti drasticamente, una scheggia, che differenza!
    ...la prima tabella, da cui leggeva, era già MyISAM.

    Può variare così tanto da una tabella InnoDB a una MyISAM?
    Adesso sono tra i 10 e 20 millisecondi per la risposta, la scrittura del registro non influenza praticamente niente il tempo di risposta!

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    758
    Per vedere meglio cosa succede postaci il risultato di "show profile" dopo aver eseguito una query di questo tipo.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    758
    myisam è sicuramente più veloce, e innodb di solito ha bisogno di un po' di tuning sulla configurazione del server (in primis il settaggio di innodb_buffer_pool_size) per avere delle performance ottimali. Comunque prova a utilizzare show profile su una tabella innodb come ti ho detto nel messaggio precedente, così proviamo a capire dove sta il problema.

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    691
    Quote Originariamente inviata da M4V1 Visualizza il messaggio
    Per vedere meglio cosa succede postaci il risultato di "show profile" dopo aver eseguito una query di questo tipo.
    Scusami, è una cosa che non ho mai fatto, come si fa?

    Devo eseguire un insert direttamente da phpmyadmin, e poi?
    Dove trovo l'opzione che mi hai detto?

  9. #9
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    691
    Quote Originariamente inviata da optime Visualizza il messaggio
    come hai calcolato questo tempo? se provi la stessa insert da console (typo phpmyadmin) ottieni gli stessi tempi?
    Definisco una variabile globale al''inizio dello script con microtime(TRUE) e faccio la differenza alla fine dello script con lo stesso comando.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2016
    Messaggi
    758
    codice:
    show profile
    è un comando da inserire come il codice sql subito dopo aver effettuato la tua insert di test.
    Io di solito lo faccio da riga di comando ma dovrebbe funzionare ugualmente anche da phpmyadmin

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 © 2020 vBulletin Solutions, Inc. All rights reserved.