mysql查看数据库表容量大小

【推荐】单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。
说明:如果预计三年后的数据量根本达不到这个级别,请不要在创建表时就分库分表。

1. 查询所有数据库记录数和容量

复制代码
SELECT
	table_schema AS '数据库',
	SUM(table_rows) AS '记录数',
	SUM(TRUNCATE(data_length/1024/1024, 2)) AS '数据容量(MB)',
	SUM(TRUNCATE(index_length/1024/1024, 2)) AS '索引容量(MB)'
FROM information_schema.tables
GROUP BY table_schema
ORDER BY SUM(data_length) DESC, SUM(index_length) DESC;

2. 查询指定数据库记录数和容量

复制代码
SELECT
	table_schema AS '数据库',
	SUM( table_rows ) AS '记录数',
	SUM(TRUNCATE ( data_length / 1024 / 1024, 2 )) AS '数据容量(MB)',
	SUM(TRUNCATE ( index_length / 1024 / 1024, 2 )) AS '索引容量(MB)' 
FROM information_schema.TABLES 
WHERE table_schema = 'syspt';

3、查询所有数据库每个表的记录数和容量

复制代码
SELECT
	table_schema AS '数据库',
	table_name AS '表名',
	table_rows AS '记录数',
	TRUNCATE(data_length/1024/1024, 2) AS '数据容量(MB)',
	TRUNCATE(index_length/1024/1024, 2) AS '索引容量(MB)'
FROM information_schema.tables
ORDER BY data_length DESC, index_length DESC;

4. 查询指定数据库每个表的记录数和容量

复制代码
SELECT
	table_schema AS '数据库',
	table_name AS '表名',
	table_rows AS '记录数',
	TRUNCATE(data_length/1024/1024, 2) AS '数据容量(MB)',
	TRUNCATE(index_length/1024/1024, 2) AS '索引容量(MB)'
FROM information_schema.tables
WHERE table_schema='syspt'
ORDER BY data_length DESC, index_length DESC;

5. 统计所有数据库的总大小

复制代码
SELECT CONCAT(ROUND(SUM(DATA_LENGTH/1024/1024),2),'MB') AS DATA FROM information_schema.TABLES;
相关推荐
m0_694845571 分钟前
教你使用服务器如何搭建数据库
linux·运维·服务器·数据库·云计算
gamers41 分钟前
rock linux 9 安装mysql 5.7.44
linux·mysql·adb
努力的小郑1 小时前
MySQL索引(四):深入剖析索引失效的原因与优化方案
后端·mysql·性能优化
okra-2 小时前
如何进行WEB安全性测试
数据库
江团1io03 小时前
深入解析MVCC:多版本并发控制的原理与实现
java·经验分享·mysql
island13143 小时前
【Redis#9】其他数据结构
数据结构·数据库·redis
言之。3 小时前
Django REST框架:ModelViewSet全面解析
数据库·python·django
-Xie-3 小时前
Mysql杂志(十四)——Mysql逻辑架构
数据库·mysql·架构
西贝爱学习3 小时前
数据库系统概论的第六版与第五版的区别
数据库·oracle
emma羊羊5 小时前
【SQL注入】延时盲注
数据库·sql·网络安全