AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 59988
Accepted
Question Overflow
Question Overflow
Asked: 2014-03-03 00:03:22 +0800 CST2014-03-03 00:03:22 +0800 CST 2014-03-03 00:03:22 +0800 CST

MariaDB não armazena em cache nenhuma consulta

  • 772

Eu testei várias consultas simples como:

SELECT COUNT(*) FROM Users WHERE courses='a';

Mas nenhum está sendo armazenado em cache. A seguir estão as variáveis ​​relacionadas ao cache:

show variables like "%cache%";
+-------------------------------+----------------------+
| Variable_name                 | Value                |
+-------------------------------+----------------------+
| aria_pagecache_age_threshold  | 300                  |
| aria_pagecache_buffer_size    | 100000000            |
| aria_pagecache_division_limit | 100                  |
| binlog_cache_size             | 32768                |
| binlog_stmt_cache_size        | 32768                |
| have_query_cache              | YES                  |
| join_cache_level              | 2                    |
| key_cache_age_threshold       | 300                  |
| key_cache_block_size          | 1024                 |
| key_cache_division_limit      | 100                  |
| key_cache_segments            | 0                    |
| max_binlog_cache_size         | 18000000000000000000 |
| max_binlog_stmt_cache_size    | 18000000000000000000 |
| metadata_locks_cache_size     | 1024                 |
| query_cache_limit             | 1048576              |
| query_cache_min_res_unit      | 4096                 |
| query_cache_size              | 0                    |
| query_cache_strip_comments    | OFF                  |
| query_cache_type              | ON                   |
| query_cache_wlock_invalidate  | OFF                  |
| stored_program_cache          | 256                  |
| table_definition_cache        | 400                  |
| table_open_cache              | 400                  |
| thread_cache_size             | 0                    |
+-------------------------------+----------------------+

O status relacionado ao cache mostra:

show status like "%cache%";
+-----------------------------------+-------+
| Variable_name                     | Value |
+-----------------------------------+-------+
| Aria_pagecache_blocks_not_flushed | 0     |
| Aria_pagecache_blocks_unused      | 15737 |
| Aria_pagecache_blocks_used        | 2     |
| Aria_pagecache_read_requests      | 78    |
| Aria_pagecache_reads              | 3     |
| Aria_pagecache_write_requests     | 6     |
| Aria_pagecache_writes             | 0     |
| Binlog_cache_disk_use             | 0     |
| Binlog_cache_use                  | 0     |
| Binlog_stmt_cache_disk_use        | 0     |
| Binlog_stmt_cache_use             | 0     |
| Com_assign_to_keycache            | 0     |
| Qcache_free_blocks                | 0     |
| Qcache_free_memory                | 0     |
| Qcache_hits                       | 0     |
| Qcache_inserts                    | 0     |
| Qcache_lowmem_prunes              | 0     |
| Qcache_not_cached                 | 0     |
| Qcache_queries_in_cache           | 0     |
| Qcache_total_blocks               | 0     |
| Ssl_callback_cache_hits           | 0     |
| Ssl_session_cache_hits            | 0     |
| Ssl_session_cache_misses          | 0     |
| Ssl_session_cache_mode            | NONE  |
| Ssl_session_cache_overflows       | 0     |
| Ssl_session_cache_size            | 0     |
| Ssl_session_cache_timeouts        | 0     |
| Ssl_used_session_cache_entries    | 0     |
| Subquery_cache_hit                | 0     |
| Subquery_cache_miss               | 0     |
| Threads_cached                    | 0     |
+-----------------------------------+-------+

Li todo o manual e verifiquei se as seguintes condições são atendidas:

  • a variável do servidor query_cache_type é definida como 1 ou ON
  • as seguintes funções não estão presentes na consulta: BENCHMARK() CONNECTION_ID() CONVERT_TZ() CURDATE() CURRENT_DATE() CURRENT_TIME() CURRENT_TIMESTAMP() CURTIME() DATABASE() ENCRYPT() (um parâmetro) FOUND_ROWS() GET_LOCK() LAST_INSERT_ID() LOAD_FILE() MASTER_POS_WAIT() NOW() RAND() RELEASE_LOCK() SLEEP() SYSDATE() UNIX_TIMESTAMP() (sem parâmetros) USER() UUID() UUID_SHORT()
  • não é da forma:

    SELECT SQL_NO_CACHE ... SELECT ... INTO OUTFILE ... SELECT ... INTO DUMPFILE ... SELECT ... FOR UPDATE SELECT * FROM ... WHERE autoincrement_column IS NULL SELECT ... LOCK IN SHARE MODE

  • ele usa uma tabela não TEMPORARY
  • não gera aviso
  • ele não acessa uma tabela particionada
  • ele não acessa uma tabela de INFORMATION_SCHEMA, mysql ou o banco de dados performance_schema
  • não faz uso de variáveis ​​de usuário ou locais
  • não faz uso de funções armazenadas
  • não faz uso de funções definidas pelo usuário
  • não está dentro de uma transação com o nível de isolamento SERIALIZABLE

A única coisa que não tenho certeza é:

  • o usuário não tem um privilégio de nível de coluna em nenhuma tabela na consulta

Eu corro SHOW FULL COLUMNS FROM Users;e todas as colunas contêm "selecionar, inserir, atualizar". Mesmo as tabelas recém-criadas contêm esses privilégios. Alguém pode explicar o que pode estar errado?

mysql mariadb
  • 1 1 respostas
  • 3271 Views

1 respostas

  • Voted
  1. Best Answer
    Michael - sqlbot
    2014-03-03T07:18:13+08:002014-03-03T07:18:13+08:00

    Você perdeu uma coisa.

    query_cache_size              | 0       
    

    Para definir o tamanho do cache de consulta, defina a query_cache_sizevariável do sistema. Defini-lo como 0 desativa o cache de consulta, assim como definir query_cache_type=0.

    https://dev.mysql.com/doc/refman/5.6/en/query-cache-configuration.html

    Embora ativado, o tamanho do cache de consulta é, por padrão, 0 KB, o que efetivamente desativa o cache de consulta. Ative-o definindo uma quantidade > 40 KB

    https://mariadb.com/kb/en/query-cache/

    https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_query_cache_size

    • 5

relate perguntas

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve