MySql 5.7.3 - Come disattivare la cache ?

di il
30 risposte

30 Risposte - Pagina 2

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    @By65Franco, non siamo “di primo pelo”, siamo abbondantemente “diversamente giovani” ;-)

    Quando, una persona alle prime esperienze (per l'autore: NON E' un'offesa, TUTTI abbiamo iniziato !) cerca di fare qualcosa che non ci e' capitato da PARECCHI lustri, FORSE, e' ragionevole supporre che stia sbagliando approccio.

    Tra l'altro, l'autore avendo indicato, in un precedente post, che le query stanno piu' di un minuto la prima volta e poi meno di un secondo, e visto che la mia risposta e' stata ‘e’ la cache' (cosa di normale amministrazione per DBMS, almeno per quelli che mi sono capitati fino ad ora), va da se che andare a pasticciare con particolari configurazioni del DBMS, che sono state scelte da persone con MOOOOLTA piu' esperienza di noi nella PROGETTAZIONE del software, o addirittura e' automatica (IBM ha inventato il termine ‘Autonomic’ per indicare  un software che si AUTO configura) e' sintomo che si sta per fare qualcosa di DECISAMENTE sbagliato.

    E' ovvio che se un parametro di configurazione esiste, vuol dire che puo' essere cambiato.

    MA ci sono parametri e parametri ;-)

    Purtroppo l'autore non ha detto PERCHE' vuole fare una cosa del genere, MAGARI quello che vuol fare non centra niente con quello che vorrebbe ottenere, o magari anche si, o magari e' SOLO UNA delle cose da fare. Non lo si sapra' mai ;-)

    L'impressione, e questo un insegnante lo potrebbe confermare ;-) che ci sia un punto prima del quale il “problema” sia “come applicare la soluzione”, “soluzione” che in “teoria” dovrebbe risolvere il “vero problema”, che pero', in qualche modo, non si e' compreso, invece oltre al quale si e' in grado di “distinguere” il “vero problema da risolvere” dal “problema di come applicare la soluzione” ;-)

    Mi viene in mente la seguente storiella: c'e' una macchia su una lastra di vetro e l'omino tenta in tutti i modi di toglierla ma non ci riesce. Frustrato, tenta di rompere la lastra con un martello. Ma poiche' la lastra e' anti sfondamento, non basta un normale martello, quindi chiede come fare, perche' l'idea per risolvere il problema originale e' di sostituirla con una nuova (soluzione plausibile ;-) ) 

    Altra soluzione? Bastava andare dall'altra parte della lastra ;-)

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    11/06/2023 - migliorabile ha scritto:


    @By65Franco, non siamo “di primo pelo”, siamo abbondantemente “diversamente giovani” ;-)

    Quando, una persona alle prime esperienze (per l'autore: NON E' un'offesa, TUTTI abbiamo iniziato !) cerca di fare qualcosa che non ci e' capitato da PARECCHI lustri, FORSE, e' ragionevole supporre che stia sbagliando approccio.

    Tra l'altro, l'autore avendo indicato, in un precedente post, che le query stanno piu' di un minuto la prima volta e poi meno di un secondo, e visto che la mia risposta e' stata ‘e’ la cache' (cosa di normale amministrazione per DBMS, almeno per quelli che mi sono capitati fino ad ora), va da se che andare a pasticciare con particolari configurazioni del DBMS, che sono state scelte da persone con MOOOOLTA piu' esperienza di noi nella PROGETTAZIONE del software, o addirittura e' automatica (IBM ha inventato il termine ‘Autonomic’ per indicare  un software che si AUTO configura) e' sintomo che si sta per fare qualcosa di DECISAMENTE sbagliato.

    E' ovvio che se un parametro di configurazione esiste, vuol dire che puo' essere cambiato.

    MA ci sono parametri e parametri ;-)

    Purtroppo l'autore non ha detto PERCHE' vuole fare una cosa del genere, MAGARI quello che vuol fare non centra niente con quello che vorrebbe ottenere, o magari anche si, o magari e' SOLO UNA delle cose da fare. Non lo si sapra' mai ;-)

    L'impressione, e questo un insegnante lo potrebbe confermare ;-) che ci sia un punto prima del quale il “problema” sia “come applicare la soluzione”, “soluzione” che in “teoria” dovrebbe risolvere il “vero problema”, che pero', in qualche modo, non si e' compreso, invece oltre al quale si e' in grado di “distinguere” il “vero problema da risolvere” dal “problema di come applicare la soluzione” ;-)

    Mi viene in mente la seguente storiella: c'e' una macchia su una lastra di vetro e l'omino tenta in tutti i modi di toglierla ma non ci riesce. Frustrato, tenta di rompere la lastra con un martello. Ma poiche' la lastra e' anti sfondamento, non basta un normale martello, quindi chiede come fare, perche' l'idea per risolvere il problema originale e' di sostituirla con una nuova (soluzione plausibile ;-) ) 

    Altra soluzione? Bastava andare dall'altra parte della lastra ;-)

    La pratica val più della grammatica…

    A volte bisogna sbatterci il muso. Vuole formattare? Che formatti! Vuole eliminare la cache? Che lo faccia!

    Appena si renderà conto della cavolata, reinstalla e diventa @By65Franco.0.02

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    E' proprio così. Bisogna sempre pensare che chi ha progettato il software abbia impostato per default parametri di configurazione stabili e atti ad un ottimale funzionamento secondo i vari sistemi operativi.

    Molto spesso se si riscontrano problemi dipende da come si utilizzano gli strumenti messi a disposizione. Se si usano bene difficilmente ci saranno problemi. L'ambiente e le circostanze sono fattori predominanti.

    Posto che concordo pienamente con te… mi risulta difficile capire perchè, soprattutto oggi, non si leggano i manuali e se necessario, approfondire taluni argomenti. Sembra che esista una certa allergia o riluttanza. ;)

    Ricordo bene che secoli fa ;) quando ebbi la necessità di installare il primo server e configurare i relativi servizi per i client (non dico la marca, era lo stesso identico, solo con un armadio di hard disk di meno, a quello utilizzato per la prima edizione del Grande Fratello), il fornitore si preoccupò dell'installazione hardware, prima accensione e consegna dei manuali. 
    E come sempre mi è capito, dove nessuno mi ha insegnato qualcosa o dato la “pappa pronta”, ho sempre preso in mano i manuali, studiato e fatto.

    Questo sarà pure un brutto vizio che ho, ma fu la prima cosa che i computer di addestramento in Ibm indicavano di fare… prendere i manuali e leggere. Se avevi letto bene e ben capito, allora il computer ti consentiva di passare ai livelli successivi delle lezioni. E non c'era nessun essere umano che insegnava o suggeriva cosa fare. Anzi si, c'era solo una persona, la vedevi il primo giorno, ti assegnava la postazione di lavoro e l'accesso.
    Vabbè, forse altri tempi, ma sicuramente la “scuola” Ibm dava un impostazione e un ordine mentale che mi è sempre tornato utile su qualsiasi altro sistema.

    Quindi quando noto questa riluttanza allo studio delle soluzioni, preferendo il copia incolla o così detti tentativi, non so come dire, ma mi viene una certa orticaria.
     ;))

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    @sihsandrea fortuna che e' @By65Franco.0.02 e NON @By65Franco.002, con doppio zero, quindi licenza di uccidere ;-)

    Comunque, si, assolutamente, prendere una strada e sbagliare, magari alla grande, e' FONDAMENTALE per imparare. 

    Ma questo non esclude una certa ‘capacita’ critica' su quello che si vorrebbe fare ;-)

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    Ragazzi, grazie a tutti.

    In realtà ho fatto delle ricerche, letto anche le guide. Poi purtroppo nn sono riuscito a trovare/capire quello che cercavo ed ho chiesto a voi. Tutto qui.

    Ora vi dico il motivo, come dicevo prima, non tecnico.

    Chi utilizza il software non vuole “vedere” questa differenza di tempo tra la prima interrogazione e l'altra. Vaglielo a spiegare tutto il discorso “cache”

    Cosa che ho fatto…ma niente..nn lo vuole capire.

    Poi, per il file di configurazione.

    Le guide mi indicano (vedi mio primo post) di impostare a zero, nel mio file di configurazione,la dimensione della cache. Ho aperto il file, ma quella variabile nn lho trovata da nessuna parte.

    Quindi…eccomi qui a chiedervi suggerimenti.

    Prima di mettere mano al file di configurazione volevo andarci cauto. Anche se nn ho ancora capito se mi basta editare il mio my.ini e scriverci dentro quello indicato dalla guida, visto che nn c'è all'Interno del file.

    Vabbè cmq grazie a tutti.  

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    @ato, QUINDI 

    la soluzione al PROBLEMA delle query lente SOLO la prima volta E' 

    … rullo di tamburi …

    REDERLE SEMPRE LENTE ;-)

    anzi, meglio …

    TUTTE VELOCI ALLO STESSO MODO ;-)

    __ qui ci vorrebbe l'emoticon del tizio che sbatte la testa contro il muro ;-) __

    .

    Anche QUESTA e' una soluzione ;-)

    TUTTA questione di filosofia ;-)

    .

    La seconda domanda spontanea e': MA SE HAI un'instanza locale di MySQL, perche' non provi? 
    Tanto devi: modificare ‘my.ini’, fermare il servizio, riavviare il servizio.
    Alla fine: ripristinare ‘my.ini’, fermare il servizio, riavviare il servizio.
    Non e' che sia poi cosi' complicato.

    Nel file NON C'E' PERCHE' NON E' un parametro che l'utilizzatore “medio” deve andare a cambiare!

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    11/06/2023 - ato ha scritto:


    Ragazzi, grazie a tutti.

    In realtà ho fatto delle ricerche, letto anche le guide. Poi purtroppo nn sono riuscito a trovare/capire quello che cercavo ed ho chiesto a voi. Tutto qui.

    Ora vi dico il motivo, come dicevo prima, non tecnico.

    Chi utilizza il software non vuole “vedere” questa differenza di tempo tra la prima interrogazione e l'altra. Vaglielo a spiegare tutto il discorso “cache”

    Cosa che ho fatto…ma niente..nn lo vuole capire.

    Poi, per il file di configurazione.

    Le guide mi indicano (vedi mio primo post) di impostare a zero, nel mio file di configurazione,la dimensione della cache. Ho aperto il file, ma quella variabile nn lho trovata da nessuna parte.

    Quindi…eccomi qui a chiedervi suggerimenti.

    Prima di mettere mano al file di configurazione volevo andarci cauto. Anche se nn ho ancora capito se mi basta editare il mio my.ini e scriverci dentro quello indicato dalla guida, visto che nn c'è all'Interno del file.

    Vabbè cmq grazie a tutti.  

    Magari devi solo ottimizzare la query…

    In altro 3d abbiamo tutti perso tempo perché si parlava di php e non di query. Sentivo vaneggiare di if, if on if, for e while…

    Tu cosa hai scritto?

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    @sihsandrea, e' gia' stato scritto che cosa non va nella query e come ottimizzarla! 

    Boh, vai a capire perche' non abbia preso in considerazione la risposta! 

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    11/06/2023 - ato ha scritto:


    In realtà ho fatto delle ricerche, letto anche le guide. Poi purtroppo nn sono riuscito a trovare/capire quello che cercavo ed ho chiesto a voi. Tutto qui.

    Si vabbè, ma io ho fatto semplicemente delle considerazioni in senso generale, e non mi riferivo direttamente a te, riguardo l'attitudine di capire il problema e come meglio approcciarsi per una soluzione qualora esista.

    Ma detto questo, anche nei link che ti sono stati forniti e che hai ricercato e trovato tu stesso, troverai che tali impostazioni possono essere inserite sotto la voce apposita di configurazione. (non ha caso avevo in precedenza avevo detto che ogni cosa ha il suo posto)

    Eventualmente ti lascio un link che se non hai visto già, tornerà utile:
    MySQL :: MySQL 5.7 Reference Manual :: 1.4 Server and Status Variables and Options Added, Deprecated, or Removed in MySQL 5.7

    Personalmente non sono in grado di darti suggerimenti nello specifico in quanto, come già detto in precedenza, non mi è mai capitata tale necessità.

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    11/06/2023 - sihsandrea ha scritto:


    La pratica val più della grammatica…

    A volte bisogna sbatterci il muso. Vuole formattare? Che formatti! Vuole eliminare la cache? Che lo faccia!

    Appena si renderà conto della cavolata, reinstalla e diventa @By65Franco.0.02

    OOOOOoooooooooooo … ma che centro io ? ahahahahaahah 

    avevo solo fatto una domanda all'autore del post :))

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    11/06/2023 - migliorabile ha scritto:


    @sihsandrea, e' gia' stato scritto che cosa non va nella query e come ottimizzarla! 

    Boh, vai a capire perche' non abbia preso in considerazione la risposta! 

    perchè si cerca sempre un copia e incolla….   se fa prima … o no ?

    ;))

    (scherzo)

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    11/06/2023 - migliorabile ha scritto:


    @ato, QUINDI 

    la soluzione al PROBLEMA delle query lente SOLO la prima volta E' 

    … rullo di tamburi …

    REDERLE SEMPRE LENTE ;-)

    __ qui ci vorrebbe l'emoticon del tizio che sbatte la testa contro il muro ;-) __

    .

    Anche QUESTA e' una soluzione ;-)

    TUTTA questione di filosofia ;-)

    .

    La seconda domanda spontanea e': MA SE HAI un'instanza locale di MySQL, perche' non provi? 
    Tanto devi: modificare ‘my.ini’, fermare il servizio, riavviare il servizio.
    Alla fine: ripristinare ‘my.ini’, fermare il servizio, riavviare il servizio.
    Non e' che sia poi cosi' complicato.

    Nel file NON C'E' PERCHE' NON E' un parametro che l'utilizzatore “medio” deve andare a cambiare!

    naaaaaaa…. io farei partire la query prima che venga utilizzata… 

    a questo punto quando verrà utilizzata successivamente non devi aspettare la prima volta che va lenta e hai solo esecuzioni veloci.

    ;)

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    Ciao a tutti. Avendo letto questa discussione per caso, ho pensato di registrarmi al forum e dire la mia sulla query cache. In realtà credo di avere già usato questo forum molti anni fa, ma chissà che nick usavo…

    MySQL 8 non ha più la query cache. MariaDB ce l'ha ancora, ma l'ha disabilitata di default qualche anno fa. Perchè? Perchè la query cache ha tanti difetti, ma in particolare:

    • È regolata da un mutex globale. Sì, sto dicendo che due query non possono accedere alla query cache allo stesso tempo. E questo vale anche in lettura.
    • Ogni volta che esegui una INSERT/UPDATE/DELETE su una tabella, tutte le query che menzionano quella tabella vengono invalidate dalla query cache.

    Quindi, per un nuovo database, vi consiglio di non attivarla. Ma per un DB esistente, purtroppo, le cose non sono così semplici. Magari voi monitorate le metriche corrette (lo stato dei thread in performance_schema.processlist e le variabili di stato che cominciano con Qcache) e vedete che la query cache vi sta facendo dei danni. Ma disabilitandola potreste fare peggio. Perchè magari avete delle query che non usano indici e, se eseguite realmente, impiegano tempi irragionevoli. Ma siccome sono in cache, nessuno sa che queste query sono lente. Insomma, andrebbe disattivata ma bisogna fare dei test.

    Un'altra cosa. Per disattivare la query cache però bisogna:

    • Impostare query_cache_type=0 nel my.cnf
    • Impostare query_cache_size=0 (altrimenti la memoria è allocata lo stesso)
    • Riavviare MySQL/MariaDB.

    Se la disattivate a runtime, quindi senza riavviare, non viene completamente disabilitata. Guardando la processlist continuerete a vedere “waiting for query cache” o qualcosa del genere.

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    12/06/2023 - federico.razzoli ha scritto:


    Quindi, per un nuovo database, vi consiglio di non attivarla. Ma per un DB esistente, purtroppo, le cose non sono così semplici. Magari voi monitorate le metriche corrette (lo stato dei thread in performance_schema.processlist e le variabili di stato che cominciano con Qcache) e vedete che la query cache vi sta facendo dei danni. Ma disabilitandola potreste fare peggio. Perchè magari avete delle query che non usano indici e, se eseguite realmente, impiegano tempi irragionevoli. Ma siccome sono in cache, nessuno sa che queste query sono lente. Insomma, andrebbe disattivata ma bisogna fare dei test.

    Ciao, grazie per info…

    Quindi misero una toppa per migliorane le performance ?

    E dalla Vr. 8 la toppa non serve più ? (hanno risolto?)

    ;)

  • Re: MySql 5.7.3 - Come disattivare la cache ?

    Ciao By65Franco.

    Non è che abbiano messo una toppa. Le query possono essere lente su qualsiasi DB, se non usano gli indici o se esaminano molti dati. Non è un problema di MySQL, ma di come lo usi. E in teoria l'idea di una query cache è affascinante: non esegui la query una seconda volta, ma prelevi i dati dalla memoria.

    In pratica però la query cache è stata fatta nei primi 2000, quando nessuno si preoccupava della scalabilità perchè i siti erano relativamente poco visitati. Difficilmente il mutex sulla query cache rappresentava un problema. Ma a oggi non è più così, ecco perchè in MySQL 8 hanno deciso di eliminarla.

    Altri DB usano un'idea molto più interessante, le materialized views. Anche queste sono query pre-eseguite. Ma con due grossi vantaggi:

    1. Di solito quando i dati sottostanti cambiano, le materialized views vengono aggiornate in modo incrementale, senza prelevare di nuovo tutti i dati. Al contrario, come dicevo, la query cache invalida tutte le query che menzionano la tabella che è stata modificata.
    2. Le materialized views possono essere usate come tabelle normali. Quindi puoi eseguire qualsiasi query su di esse. La query cache, al contrario, cerca in memoria una query identica a quella che stai eseguendo.

    MySQL e MariaDB non supportano le materialized views in modo nativo, ma si possono ottenere gli stessi risultati con FlexViews.

Devi accedere o registrarti per scrivere nel forum
30 risposte