首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql -清洁ibdata1

MySql -清洁ibdata1
EN

Database Administration用户
提问于 2012-04-19 10:07:00
回答 1查看 37K关注 0票数 4

我有一个数据库,其整个大小为44 of,其中ibdata1为35 of。这是没有意义的,因为数据的大小不应该超过10 be。

我使用以下查询获取数据大小的必要值:

代码语言:javascript
复制
    SELECT CONCAT(table_schema, '.', table_name),
       CONCAT(ROUND(table_rows / 1000000, 2), 'M')                                    rows,
       CONCAT(ROUND(data_length / ( 1024 * 1024 * 1024 ), 2), 'G')                    DATA,
       CONCAT(ROUND(index_length / ( 1024 * 1024 * 1024 ), 2), 'G')                   idx,
       CONCAT(ROUND(( data_length + index_length ) / ( 1024 * 1024 * 1024 ), 2), 'G') total_size,
       ROUND(index_length / data_length, 2)                                           idxfrac
FROM   information_schema.TABLES
ORDER  BY data_length + index_length DESC
LIMIT  30;

对如何清洁ibdata1有什么想法吗?为什么它会长这么多?

顺便说一下,我用innodb_file_per_table

EN

回答 1

Database Administration用户

发布于 2012-04-19 10:10:47

我最好的猜测是,在某个时候,它是如此之大。

ibdata1永远不会收缩,所以它将保持它的最大大小。也许在你做innodb_file_per_table之前,你已经有过几张桌子了,在那里很大。

我所知道的缩小它的唯一方法是做一个转储,删除文件(ibdata,iblog和所有.idb)并加载转储。

票数 3
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/16747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档