优秀的编程知识分享平台

网站首页 > 技术文章 正文

mysql查询单表内存大小、索引大小及每行数据大小

nanyue 2024-10-27 11:28:19 技术文章 6 ℃


当单表数据过多查询变慢时,我们时常需要观察单表的大小及内存情况,并考虑是否进行分表归档。


以mysql为例,查询操作如下:


第一步:


use information_schema;



第二步:


select TABLE_ROWS '总行数', 
concat(round(sum(DATA_LENGTH/1024/1024), 2),'M') as '表大小', 
concat(round(sum(INDEX_LENGTH/1024/1024), 2),'M') as '索引大小', 
concat(round(sum(DATA_LENGTH/TABLE_ROWS/1024), 2),'KB') as '单行大小' 
from TABLES where table_schema='你的数据库名称' and table_name='你的表名';



mysql单表支持最大的条数,可以根据单行大小计算。


假设你的表单行数据大小为1KB。则在B+树索引层级为3层时,能存储的行记录上限为21,902,400。若为2KB,则上限在1000W条左右。当然,很多情况下我们不需要达到这么多就需要拆分表了。

?

最近发表
标签列表