zoukankan      html  css  js  c++  java
  • mysql-碎片率和空间优化

    mysql中information_schema.tables字段说明

    data_free是空间碎片,单位是B。产生原因;

    (1)记录被Delete,且原空间无法复用;
    (2)记录被Update(通常出现在变长字段中,varchar,text),原空间无法复用;

    data_length是数据长度,是所存数据的存储占用量

    index_length是索引长度,是索引所占的存储空间

    字段 含义
    table_catalog 数据表登记目录
    table_schema 数据表所属的数据库名
    table_name 表名称
    table_type 表类型[system view|base table]
    engine 使用的数据库引擎[MyISAM|CSV|InnoDB]
    version 版本,默认值10
    row_format 行格式[Compact|Dynamic|Fixed]
    table_rows 表里所存多少行数据
    avg_row_length 平均行长度
    data_length 数据长度
    max_data_length 最大数据长度
    index_length 索引长度
    data_free 空间碎片
    auto_increment 做自增主键的自动增量当前值
    create_time 表的创建时间
    update_time 表的更新时间
    check_time 表的检查时间
    table_collation 表的字符校验编码集
    checksum 校验和
    create_options 创建选项
    table_comment 表的注释、备注

     

    阿里RDS的计算方法:

    表空间=data_length+index_length+data_free

    碎片率=data_free/表空间

    碎片整理

    如果您已经删除了表的一大部分,或者如果您已经对含有可变长度行的表(含有VARCHAR, BLOB或TEXT列的表)进行了很多更改,则应使用
    OPTIMIZE TABLE。被删除的记录被保持在链接清单中,后续的INSERT操作会重新使用旧的记录位置。您可以使用OPTIMIZE TABLE来重新
    利用未使用的空间,并整理数据文件的碎片。

    在多数的设置中,您根本不需要运行OPTIMIZE TABLE。即使您对可变长度的行进行了大量的更新,您也不需要经常运行,每周一次或每月一次
    即可,只对特定的表运行。

    OPTIMIZE TABLE只对MyISAM, BDB和InnoDB表起作用。

    注意,在OPTIMIZE TABLE运行过程中,MySQL会锁定表。

     

  • 相关阅读:
    VMware16Pro永久激活key密钥亲测可用
    软件客户端激活码设计思路
    Android 监听外部U盘插入事件
    分享一款由python开发的全能多线程抢购神器,支持华为、京东、淘宝等商城
    android遇见Uninitialized object exists on backward branch 142解决办法
    android framework-下载Android系统源代码
    android-windowManager使用实例
    理解Android Framework
    4种常用线程池介绍
    谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现 (转载)
  • 原文地址:https://www.cnblogs.com/jabbok/p/13254730.html
Copyright © 2011-2022 走看看