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;
相关推荐
fenglllle30 分钟前
spring-data-jpa saveall慢的原因
数据库·spring·hibernate
DarkAthena1 小时前
【GaussDB】执行索引跳扫时如果遇到该索引正在执行autovacuum,可能会导致数据查询不到
数据库·gaussdb
短剑重铸之日2 小时前
《7天学会Redis》Day 5 - Redis Cluster集群架构
数据库·redis·后端·缓存·架构·cluster
007php0072 小时前
mySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据
数据库·redis·git·mysql·面试·职场和发展·php
lkbhua莱克瓦242 小时前
进阶-存储过程3-存储函数
java·数据库·sql·mysql·数据库优化·视图
老邓计算机毕设2 小时前
SSM心理健康系统84459(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·心理健康系统·在线咨询
碎像2 小时前
10分钟搞定 MySQL 通过Binlog 数据备份和恢复
数据库·mysql
+VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue小型房屋租赁系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
win x3 小时前
Redis 分布式锁
数据库·redis·分布式