SELECT table_name "Nome da tabela", data_length / 1024 / 1024 "Tamanho da tabela em MB", index_length / 1024 / 1024 "Tamanho do indice em MB", engine
FROM information_schema.tables
WHERE table_name in
(SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'nomedobanco')
ORDER BY data_length;
Mostrando postagens com marcador Banco de Dados. Mostrar todas as postagens
Mostrando postagens com marcador Banco de Dados. Mostrar todas as postagens
segunda-feira, 20 de janeiro de 2020
Tamanho das tabelas de um banco
Substitua 'nomebanco' pelo nome do banco de dados que você quer saber o tamanho das tabelas.
terça-feira, 23 de outubro de 2018
Analisando o valor do tmp_table_size
1. Encontrar o valor atual do tmp_table_size
mysql> show global variables like 'tmp_tables_size';
Empty set (0,26 sec)
2. Encontrar a porcentagem de tabelas criadas no disco
mysql> show global status like 'created_tmp_disk_tables';
+-------------------------+--------+
| Variable_name | Value |
+-------------------------+--------+
| Created_tmp_disk_tables | 125193 |
+-------------------------+--------+
1 row in set (0,00 sec)
3. Continuando
mysql> show global status like 'created_tmp_tables';
+--------------------+--------+
| Variable_name | Value |
+--------------------+--------+
| Created_tmp_tables | 411690 |
+--------------------+--------+
1 row in set (0,01 sec)
4. Calculando
Tmp_disk_tables=((created_tmp_disk_tables*100/(created_tmp_tables+created_tmp_disk_tables))
= ((125193*100/(411690 + 125193))
= 23.32%
5. Ajustando
Caso o valor encontrado no cálculo do item 4 exceda 25%, aumentar o valor da variável tmp_table_size e repetindo o mesmo valor na variável max_heap_table_size
vi /etc/my.cnf
tmp_table_size=xxx
max_heap_table_size=xxx
6. Reiniciar o serviço MySQL
segunda-feira, 22 de outubro de 2018
Otimizazando o table_open_cache
Para obter os melhores valores desta variável, acesse o banco de dados e siga os passos abaixo:
1. Pegando os valores atuais de open_tables e opened_tables
2. Descobrindo a taxa de ocorrência do Table Cache
3. Achar o total de tabelas do seu banco de dados
4. Encontrar threads atualmente conectadas ao banco de dados
5. Calculando o valor do table_open_cache
6. Calculando o valor do open_files_limit
7. Editar as variáveis no arquivo
8. Reiniciar o serviço MySQL
1. Pegando os valores atuais de open_tables e opened_tables
mysql> show global status like 'open%';
+--------------------------+-------+
| Variable_name | Value |
+--------------------------+-------+
| Open_files | 0 |
| Open_streams | 0 |
| Open_table_definitions | 363 |
| Open_tables | 400 |
| Opened_files | 658 |
| Opened_table_definitions | 363 |
| Opened_tables | 42565 |
+--------------------------+-------+
7 rows in set (0,00 sec)
2. Descobrindo a taxa de ocorrência do Table Cache
Taxa de ocorrência = table_open_cache*100/Opened_tables.
= 400*100/42565
= 0.94%
Em geral este valor deve ser acima de 50%.3. Achar o total de tabelas do seu banco de dados
mysql> SELECT COUNT(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE';
+----------+
| COUNT(*) |
+----------+
| 144 |
+----------+
1 row in set (0,01 sec)
4. Encontrar threads atualmente conectadas ao banco de dados
mysql> show global status like '%Threads_connected%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_connected | 199 |
+-------------------+-------+
1 row in set (0,00 sec)
5. Calculando o valor do table_open_cache
Table_open_cache = total_tables*Threads_connected*.50
= 144*199*.50
= 14328
6. Calculando o valor do open_files_limit
open_files_limit= Table_open_cache*2
= 14328*2
= 28656
7. Editar as variáveis no arquivo
vi /etc/my.cnf
table_open_cache=39390
open_files_limit=78780
8. Reiniciar o serviço MySQL
Assinar:
Postagens (Atom)