zoukankan      html  css  js  c++  java
  • mysql 查看数据库及表大小以及数据库扩容评估

    本文为博主原创,未经允许不得转载:

      1.查看数据库数据存储的位置

    show global variables like "%datadir%";

       2.查看数据库大小

        2.1 information_shema 每个数据库都有一个原数据库,记录和保存了当前 mysql 所有数据库及表的存储信息,包含列,索引,大小,字段等等:

          information_schema中的表主要有:

            schemata表:这个表里面主要是存储在mysql中的所有的数据库的信息

            tables表:这个表里存储了所有数据库中的表的信息,包括每个表有多少个列等信息。

            columns表:这个表存储了所有表中的表字段信息。

            statistics表:存储了表中索引的信息。

            user_privileges表:存储了用户的权限信息。

            schema_privileges表:存储了数据库权限。

            table_privileges表:存储了表的权限。

            column_privileges表:存储了列的权限信息。

            character_sets表:存储了mysql可以用的字符集的信息。

            collations表:提供各个字符集的对照信息。

            collation_character_set_applicability表:相当于collations表和character_sets表的前两个字段的一个对比,记录了字符集之间的对照信息。

            table_constraints表:这个表主要是用于记录表的描述存在约束的表和约束类型。

            key_column_usage表:记录具有约束的列。

            routines表:记录了存储过程和函数的信息,不包含自定义的过程或函数信息。

            views表:记录了视图信息,需要有show view权限。

            triggers表:存储了触发器的信息,需要有super权限

        2.2 通过 information_shema 查看数据库或表的大小

          a. 查询所有数据库容量大小:

    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;

        b. 查看所有数据库各表容量大小

    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;

        c. 查看指定数据库容量大小

    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='mysql';

        d.  查看指定数据库各表容量大小

    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='mysql'
    order by data_length desc, index_length desc;

      3.数据库扩容:

        当系统稳定,业务不断积累时,数据库保存的数据越来越多,这时候就需要对数据库进行扩容。  

        扩容的大小评估依据可以通过 以上 2 中的方式查询当前数据量的大小,以及未来业务发展需要保存多久,以及保存多少进行动态评估。  

          如下图,为本地数据量,当扩容评估时,可根据当前业务运行的时间段增长的数据存储量,进行评估,

            如果业务一年内的数据存储量是 10GB, 数据存储扩容时的需求为我要保存三年数据,则数据库至少需要扩容到 30GB 才够用。

        

  • 相关阅读:
    java并发
    jvm虚拟机
    L2Dwidget二次元前端添加人物插件
    MySQL数据库之rowid
    MySql支持emoji表情设置
    zookeeper不能正常启动问题(转)
    jd-gui-windows-1.6.6.zip反编译工具
    为什么es集群至少需要三个节点(转)
    超好用的uniapp弹出层
    netcore5.0 使用新的Microsoft.Data.SqlClient
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/14333022.html
Copyright © 2011-2022 走看看