如何直观地看出哪个mysql表数据量大?
做程序的,通常都需要从线上往本机拷贝数据库,搭建本地环境
有很多数据表存的是统计数据或者日志,又长又臭,而且对搭建本地环境完全没有影响,但是你一开始并不知道哪些表存的是统计或者日志,把它们也拷下来的话根本是折磨人。
这样我就想知道有什么方便的方法在开始拷贝整个数据库之前,就知道哪个数据表数据量大,可以让我判断是否拷贝这个表的数据
我的初步想法是对所有表进行一次count(*),数据量最大的很可能就是统计或者日志,但是还没想到实现过程,或者还有其他方便的方法,大家都帮我想想
长白山-辉夜
11 years, 10 months ago
Answers
mysql> select table_name, table_size from
(select table_name, data_length+index_length table_size
from information_schema.tables ) t1
order by table_size desc limit 10;
+----------------------+------------+
| table_name | table_size |
+----------------------+------------+
| news | 6324224 |
| abc | 2964364 |
| help_topic | 465356 |
| help_keyword | 107989 |
| action_recorder | 81920 |
| configuration | 81920 |
| products_description | 65536 |
| products | 49152 |
| reviews | 49152 |
| orders_products | 49152 |
+----------------------+------------+
10 rows in set (0.31 sec)
午夜屠狗男
answered 11 years, 10 months ago