MySQL 占据60g磁盘容量的大表分析
2017-01-16 22:00
288 查看
在进行mysql数据库巡检的时候,发送一个数据文件特别大,有快60g了,如下:
查看数据量,才不到200W记录,那是怎么会占据60g的容量呢?
进去查看这个表,可以看到有varchar(1000),text字段以及longtext字段
表字段清晰不多,而且没有多余的索引,那么导致磁盘空间占据毕竟大的因素就是longtext/text大字段。去查看官方网站的注解 http://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html,查看longtext和text字段所占据的磁盘空间大小。
LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
A TEXT column with a maximum length of 4,294,967,295 or 4GB (232 − 1) characters. The effective maximum length is less if the value contains multibyte characters. The effective maximum length of LONGTEXT columns also depends on the configured maximum packet size in the client/server protocol and available memory. Each LONGTEXT value is stored using a 4-byte length prefix that indicates the number of bytes in the value.
TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
A TEXT column with a maximum length of 65,535 (216 − 1) characters. The effective maximum length is less if the value contains multibyte characters. Each TEXT value is stored using a 2-byte length prefix that indicates the number of bytes in the value.
An optional length M can be given for this type. If this is done, MySQL creates the column as the smallest TEXT type large enough to hold values M characters long.
【分析】text字段占据的为65535个byte,还可以,不到1M,就算所有的记录满负荷了,200W占据60g的可能比较小,二longtext单个记录最大可以占据到4g得容量,所以可以看得出来,不到200W的MOVIE_INTERFACE_LOG表占据了60g容量,也就可以理解了。
[root@db_m1_slave_1 business_db]# ll -h MOVIE_INTERFACE_LOG.ibd -rw-rw----. 1 mysql mysql 59G Jan 16 16:40 MOVIE_INTERFACE_LOG.ibd [root@db_m1_slave_1 business_db]#
查看数据量,才不到200W记录,那是怎么会占据60g的容量呢?
mysql> select count(1) from MOVIE_INTERFACE_LOG; +----------+ | count(1) | +----------+ | 1769717 | +----------+ 1 row in set (7.20 sec) mysql>
进去查看这个表,可以看到有varchar(1000),text字段以及longtext字段
mysql> show create table MOVIE_INTERFACE_LOG; +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | MOVIE_INTERFACE_LOG | CREATE TABLE `MOVIE_INTERFACE_LOG` ( `ID` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `TRADE_ID` varchar(200) DEFAULT NULL COMMENT '接口ID', `REQUEST` text COMMENT '请求报文', `RESPONSE` longtext COMMENT '返回报文', `MEMO` varchar(1000) DEFAULT NULL COMMENT '报文描述信息', `CREATE_DATE` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建日期', `UPDATE_DATE` datetime DEFAULT NULL COMMENT '修改日期', `CREATE_USER` varchar(20) DEFAULT NULL COMMENT '创建人', `UPDATE_USER` varchar(20) DEFAULT NULL COMMENT '修改人', PRIMARY KEY (`ID`) ) ENGINE=InnoDB AUTO_INCREMENT=1769690 DEFAULT CHARSET=utf8 COMMENT='接口请求报文记录' | +---------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
表字段清晰不多,而且没有多余的索引,那么导致磁盘空间占据毕竟大的因素就是longtext/text大字段。去查看官方网站的注解 http://dev.mysql.com/doc/refman/5.7/en/string-type-overview.html,查看longtext和text字段所占据的磁盘空间大小。
LONGTEXT [CHARACTER SET charset_name] [COLLATE collation_name]
A TEXT column with a maximum length of 4,294,967,295 or 4GB (232 − 1) characters. The effective maximum length is less if the value contains multibyte characters. The effective maximum length of LONGTEXT columns also depends on the configured maximum packet size in the client/server protocol and available memory. Each LONGTEXT value is stored using a 4-byte length prefix that indicates the number of bytes in the value.
TEXT[(M)] [CHARACTER SET charset_name] [COLLATE collation_name]
A TEXT column with a maximum length of 65,535 (216 − 1) characters. The effective maximum length is less if the value contains multibyte characters. Each TEXT value is stored using a 2-byte length prefix that indicates the number of bytes in the value.
An optional length M can be given for this type. If this is done, MySQL creates the column as the smallest TEXT type large enough to hold values M characters long.
【分析】text字段占据的为65535个byte,还可以,不到1M,就算所有的记录满负荷了,200W占据60g的可能比较小,二longtext单个记录最大可以占据到4g得容量,所以可以看得出来,不到200W的MOVIE_INTERFACE_LOG表占据了60g容量,也就可以理解了。
相关文章推荐
- 深度分析lvm和VG(卷组)以及pv(物理卷)和lv(逻辑卷)的关系 详解如何增加磁盘容量 2
- 应用系统负载分析与磁盘容量预测
- Mysql大表查询优化技巧总结及案例分析
- MySQL大表删除导致服务器变慢的分析
- MySQL主库大表执行delete语句,Ctrl+C具体发生了什么分析
- Linux分析操作系统磁盘容量
- MySQL schema和binary log磁盘空间趋势分析
- 9 应用系统负载分析与磁盘容量预测
- 使用ADO+MySQL时经常出现的错误分析及总结
- MySQL 索引分析和优化
- 对Jbpm数据库应用的简单分析和在Mysql上实现的demo
- 用mysqldumpslow分析mysql的slow query log
- RAID\磁盘阵列正文分析错误
- MySQL索引分析和优化
- ORACLE Postgres Mysql大表扫描操作解决方案
- MySQL连接资源占用与状态分析(v1)
- mysql 分析索引效率
- PHP+MySQL分页显示示例分析
- MySQL索引分析和优化
- MySQL索引分析和优化