La cache di query MySQL è abilitata ma non viene utilizzata

Ho verificato che la cache della query è abilitata

mysql> SHOW VARIABLES LIKE 'have_query_cache'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | YES | +------------------+-------+ 1 row in set (0.00 sec) 

Ma sembra che non sia usata

  • Vuoi 'rimuovere yum mysql-server' rimuovere anche i database?
  • Imansible connettersi a mysql su AWS tramite tunnel ssh
  • master-slave-slave replica: il master diventerà il collo di bottiglia per le scritture
  • Interpretare i grafici di Munin che mostrano l'entropia disponibile e le query lenta di MySQL in sincronia
  • Che cos'è un buon strumento di backup remoto mysql di Windows?
  • Carico CPU 100% su Ubuntu 10.04.3 LTS 64bit
  •  mysql> SHOW STATUS LIKE 'Qcache%'; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 16759648 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 21555882 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +-------------------------+----------+ 8 rows in set (0.00 sec) 

    Qualche ragione?

  • mysqldump salta una tabella
  • Migrazione da MySQL Server a MariaDB
  • perché abbiamo bisogno di VLAN in qualsiasi networking?
  • Virtualizzazione di un server MySQL di produzione
  • Utilizzare il primo o l'ultimo libero IP per il gateway predefinito?
  • Come posso trovare where MySQL sta caricando il suo config?
  • 4 Solutions collect form web for “La cache di query MySQL è abilitata ma non viene utilizzata”

    La variabile di sistema query_cache_type deve essere impostata su non zero, perché la presenza della cache non significa che possa essere utilizzata.

    Tieni anche presente che non tutte le query sono cacheabili.

    Ad esempio, se una query contiene la function NOW (), non sarebbe memorizzata nella cache. La descrizione dettagliata delle query non può essere memorizzata nella cache: https://dev.mysql.com/doc/refman/5.7/en/query-cache-operation.html

    Dovresti anche verificare in quale posizione hai scritto le impostazioni nel file di configuration.

    Il mio problema era che ho posizionato le impostazioni qchace alla fine del file. Anche se le impostazioni sono state riflesse eseguendo mysql> SHOW STATUS LIKE 'Qcache%'; nessuna query è stata effettivamente memorizzata nella cache.

    Dopo aver posizionato le impostazioni in una posizione diversa nel file e riavviando il server mysql stava lavorando.

    Qui puoi vedere la mia configuration per MySQL 5.6:

     [mysqld] bind-address=* #skip-networking # # Remove leading # and set to the amount of RAM for the most importnt data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. innodb_buffer_pool_size = 128M # # Remove leading # to turn on a very importnt data integrity option: logging # changes to the binary log between backups. # log_bin # # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock query_cache_type = 1 query_cache_size =256M thread_concurrency=2 sort_buffer_size=25M key_buffer=128M # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid 

    C'è un errore MySQL 5.6 , fissato in 5.6.9: " if the db name (or table name) has a '-' (minus), it does not work ", solo in InnoDB.

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.