开发者社区> 问答> 正文

oceanbase如何统计某个table的大小,包含表的行数和表占用的磁盘空间?

oceanbase如何统计某个table的大小,包含表的行数和表占用的磁盘空间?https://ask.oceanbase.com/t/topic/35603543 这个回答的SQL好像不对,错误代码: 1146
Table 'oceanbase.__all_virtual_meta_table' doesn't exist.版本,社区4.1

展开
收起
阿遇202411 2024-01-09 16:23:11 376 0
来自:OceanBase
3 条回答
写回答
取消 提交回答
  • 那个回答里的语句适用于3.x版本的ob。此回答整理自钉群“[社区]技术答疑群OceanBase”

    2024-01-10 07:54:42
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看

    在OceanBase 4.1版本中,您可以使用以下SQL语句来统计某个表的大小,包括表的行数和表占用的磁盘空间:

    SELECT
        t.table_name,
        t.row_count,
        SUM(s.total_size) AS total_disk_space
    FROM
        oceanbase.__all_table t,
        oceanbase.__all_table_statistics s
    WHERE
        t.table_id = s.table_id
        AND t.table_name = 'your_table_name'
    GROUP BY
        t.table_name,
        t.row_count;
    

    请将your_table_name替换为您要查询的表名。

    2024-01-09 21:17:22
    赞同 展开评论 打赏
  • 对于OceanBase 4.1社区版本,统计某个表的大小(包含行数和磁盘空间占用)可以通过以下SQL语句实现:

    获取表的行数:

    SELECT TABLE_ROWS 
    FROM information_schema.TABLES 
    WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';
    

    但请注意,OceanBase并不直接提供查看单个表在磁盘上确切占用空间大小的方法。通常数据库系统中,表的实际磁盘占用会受到数据压缩、存储引擎内部优化以及空闲空间回收等因素的影响,因此难以精确计算。

    如果你需要估算或监控表的大致空间使用情况,可以考虑定期执行全表扫描并结合数据字节数来粗略估计。例如:

    -- 获取表中所有数据的总字节数作为大致的大小参考
    SELECT SUM(DATA_LENGTH) AS estimated_size_bytes 
    FROM information_schema.COLUMNS 
    WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name';
    
    2024-01-09 16:59:36
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
蚂蚁OceanBase数据库团队,用于OceanBase技术原理、运维经验和案例分享、对外交流。
问答排行榜
最热
最新

相关电子书

更多
开源HTAP OceanBase产品揭秘 立即下载
云数据库OceanBase 架构演进及在金融核心系统中的实践 立即下载
自研金融数据库OceanBase的创新之路 立即下载