Eu tenho que saber o disco consumido pelos dados do MySQL em um servidor RDS hospedado na nuvem da Amazon. Uma das coisas fáceis que eu usei foi PhpMyAdmin UI e verificar as tabelas breve lista. Infelizmente este banco de dados tem mais de 500 tabelas. Então eu sinto que é uma abordagem preguiçosa.

Quando eu comecei a googling (uma atividade usual) descobriu que já havia algumas instruções sql disponíveis para obter esses detalhes facilmente.

Como encontrar o tamanho do banco de dados MySQL

1. Eu criei um arquivo sql “check_dbsize.sql” e adicionei a seguinte linha

SELECT table_schema “Nome do banco de dados”, sum (data_length + index_length) / 1024/1024 “Tamanho do banco de dados em MB” FROM information_schema.TABLES GROUP BY table_schema;

Em seguida, executá-lo a partir do console mysql.

Mysql> source check_dbsize.sql;
+ ——————– + ——————— +
| Nome do banco de dados | Tamanho da base de dados em MB |
+ ——————– + ——————— +
| Information_schema | 0,00878906 |
| Mysql | 5.50491428 |
| One5_on5one | 20947.15841293 |
| Performance_schema | 0,00000000 |
+ ——————– + ——————— +
4 linhas no conjunto (0,81 seg)

2. Como encontrar as tabelas maiores em um banco de dados.

uma. Eu criei um arquivo sql “show_table_size.sql” e adicionei a seguinte linha

SELECT table_name AS “Tabelas”,
Round (((data_length + index_length) / 1024/1024), 2) “Tamanho em MB”
FROM information_schema.TABLES
WHERE table_schema = “onreve5_onrevenue”
ORDER BY (data_length + index_length) DESC;

B. Execute-o a partir do console Mysql do servidor RDS.

Mysql> fonte show_table_size.sql;
+ ————————————————- —————– + ———— +
| Mesas | Tamanho em MB |
+ ————————————————- —————– + ———— +
| Jos_company_newsletter_queue | 14801.56 |
| Jos_company_drip_campaign_queue | 1526.11 |
| Jos_company_menu_visitor_intelligense | 773.13 |
| Jos_company_menu_blogdetails | 536,66 |
| Jos_session | 505,06 |
| Jos_company_special_mailsend | 469,64 |
| Jos_appointment_schedule_office_hours | 382.75 |
| Jos_company_mandrill_webhook_newsletter_details | 283,19 |
| Jos_company_twilio_call_details | 272,02 |
| Jos_company_newsletter_emaillist | 270,81 |
| Jos_company_newsletter_logdetails | 257,81 |

3. Encontre as 10 maiores tabelas

Aqui está a saída mais descritiva de uma instrução sql do Percona. Abra um arquivo e salve as seguintes linhas nele e execute-o do mysql schell. Você não precisa mencionar o nome da tabela ou nome do banco de dados.

SELECT CONCAT (table_schema, ‘.’, Table_name),
CONCAT (ROUND (table_rows / 1000000, 2), ‘M’) linhas,
CONCAT (ROUND (data_length / (1024 * 1024 * 1024), 2), ‘G’) DADOS,
CONCAT (ROUND (índice_longo / (1024 * 1024 * 1024), 2), ‘G’) idx,
CONCAT (ROUND ((data_length + comprimento_index) / (1024 * 1024 * 1024), 2), ‘G’) total_size,
ROUND (comprimento_de_logo / data_length, 2) idxfrac
FROM information_schema.TABLES
ORDER BY data_length + index_length DESC
LIMIT 10;

Tabela maior

Você pode baixar o arquivo sql aqui

Tão simples -benzóico. . Agora eu vou otimizar o tamanho da tabela, excluindo entradas envelhecidas e executar o comando optimize para liberar o espaço de vácuo não utilizado dentro do arquivo innodb.

Anúncios