MySQL如何看表大小_MySQL数据库表大小查询与优化教程

前两天,我在帮助一个朋友处理他公司的数据库时,他发现他的表中的数据量突然增加了。
当我打开表时,发现还剩下大量的日志和测试数据,过去的数据没有清理干净。
那天晚上我花了几个小时清理了无用的数据,发现我的表大小从3 00多MB变成了1 00多MB,而且查询速度也快了很多。

等一下,还有一件事。
此前,我们在进行数据迁移时遇到了一些挑战。
有些数据可能看起来很小,但对应的字段类型却很大。
例如,整数列被意外用作 TEXT 类型。
使用此计算,您的数据大小会立即增加。
因此,优化数据类型也是控制表大小的重要方法。

突然我想到,如果数据库中的表这么“大”的话,会影响数据库的整体性能。
因此,除了数据清洗、类型和索引优化之外,表分区和合适的存储引擎选择等策略也很重要。

那么如果我们的表太大,连优化效果都不明显怎么办?是时候考虑数据库分区或数据库替换了吗?

怎样查看Mysql数据库大小

说白了,检查MySQL数据库的大小其实很简单,而且有不同的方法。
事实上,复杂性在于不同的需求可能需要不同的方法。

我们先来说说最重要的事情。
第一种方法是通过information_schema数据库查看。
在我们去年开发的项目中,我们就使用了这种方法来查看整个数据库的大小,大约是3 000。

还有一点,第二种方法是通过查询TABLES表来达到的。
比如去年我们有一个网站项目,就是用这个方法来查询所有数据的大小。
命令将 concat(round(sum(DATA_LENGTH/1 02 4 /1 02 4 ),2 ), 'MB') 解析为表中的数据。

还有一个非常重要的细节。
第三种方法是检查指定数据库的大小。
例如,如果我们有一个名为 apoyl 的数据库,我们可以这样查询: select concat(round(sum(DATA_LENGTH/1 02 4 /1 02 4 ),2 ), 'MB') as data from TABLES where table_schema = 'apoyl';。

等等,还有一件事。
第四种方法是检查指定数据库中的表大小。
例如,要检查 apoyl 数据库中 apoyl_test 表的大小,可以编写: select concat(round(sum(DATA_LENGTH/1 02 4 /1 02 4 ),2 ), 'MB') as data from TABLES where table_schema = 'apoyl' and table_name = 'apoyl_test';。

我认为这些方法值得尝试,特别是如果您需要快速了解数据库或表的大小。
但请注意,这些方法可能需要一些 SQL 知识。
说实话,还是挺复杂的。
如果您不熟悉SQL,那么在搜索时可能会遇到一些困难。