Discrepância entre o tamanho do banco de dados listado em Unix e Mysql

4

Quando vejo o tamanho do meu db_1 é listado como apenas 4k. Mas quando mostro o status da tabela para db_1, vejo que o tamanho total é de aproximadamente 3,7 GB com base no comprimento dos dados. Por que existe essa discrepância? Além disso, por que o ibdata1 é tão grande?

drwx------ 2 mysql mysql 4.0K Jun  3 08:52 db_1
-rw-r-xr-x 1 mysql mysql  22G Jun  3 08:51 ibdata1
drwx------ 2 mysql mysql 4.0K Apr 30 22:30 my_DB
drwxr-xr-x 2 mysql dba   8.0K May  1 12:44 mysql
-rw-r-xr-x 1 mysql root  4.4K Jun  1 14:33 
-rw-rw---- 1 mysql mysql    5 May 17 18:19 
-rw-r-xr-x 1 mysql mysql  51K Jun  3 08:41 
drwxr-xr-x 2 mysql dba   4.0K Apr 30 22:29 performance_schema







----------------+---------+
| Name                                           | Engine | Version | Row_format | Rows     | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free   | Auto_increment | Create_time         | Update_time | Check_time | Collation         | Checksum | Create_options | Comment |
+------------------------------------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-------------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
| xxxxxxxxxxxxxxxxxxxxxx                         | InnoDB |      10 | Compact    |      117 |            140 |       16384 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:24:34 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx| InnoDB |      10 | Compact    |   466203 |            248 |   116015104 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:31:28 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx      | InnoDB |      10 | Compact    |  1028265 |            111 |   114147328 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:32:36 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxx                       | InnoDB |      10 | Compact    |  1353685 |             98 |   133922816 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:32:49 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxx                             | InnoDB |      10 | Compact    |    50546 |             52 |     2637824 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:04:18 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxx                         | InnoDB |      10 | Compact    |    44281 |             83 |     3686400 |               0 |            0 | 17825792000 |           NULL | 2012-05-01 13:19:25 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxxx                      | InnoDB |      10 | Compact    |  5841698 |            124 |   729808896 |               0 |    163397632 | 17825792000 |           NULL | 2012-05-01 13:17:29 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
| xxxxxxxxxxxxxxxxxxxxxxxx                       | InnoDB |      10 | Compact    | 52327792 |             60 |  3171942400 |               0 |            0 | 17825792000 |           NULL | 2012-05-03 17:09:41 | NULL        | NULL       | latin1_swedish_ci |     NULL |                |         |
+------------------------------------------------+--------+---------+------------+----------+----------------+-------------+-----------------+--------------+-------------+----------------+---------------------+-------------+------------+-------------------+----------+----------------+---------+
    
por cool_cs 03.06.2012 / 19:28

1 resposta

6

Esta é uma pergunta muito comum que foi feita muitas vezes.
Isso porque você está armazenando todas as tabelas em um único arquivo InnoDB (ibdata1). Este arquivo não diminui depois que os dados são excluídos, nunca. Então, em determinado momento, você tinha 22gb de dados armazenados em todas as suas tabelas InnoDB, mesmo que você não tenha muito agora.

Para resolver este problema, você precisa eliminar todas as suas tabelas InnoDB, encerrar o MySQL, deletar esse arquivo, iniciar o backup do MySQL e, em seguida, reimportar essas tabelas.

Você também pode usar a configuração do MySQL innodb_file_per_table para dividir cada tabela InnoDB em seu próprio arquivo. Os arquivos ainda não serão reduzidos automaticamente, mas você pode emitir uma limpeza com alter table ... type=innodb .

    
por 03.06.2012 / 19:59

Tags