Mysql的row_format(fixed与dynamic)

本文深入解析MySQL中的静态表和动态表的区别,静态表因固定的行格式而读取速度快但空间利用率低,动态表则反之。通过对比两种表类型的优缺点,帮助读者理解何时使用何种表类型更合适。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。

若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是dynamic,就是说每条记录所占用的字节是动态的。其优点节省空间,缺点增加读取的时间开销。

所以,做搜索查询量大的表一般都以空间来换取时间,设计成静态表。

 

CREATE TABLE `table_name` (
  `sms_id` bigint(16) NOT NULL AUTO_INCREMENT,
  `operation_type` varchar(4) NOT NULL,
  `mobile_phone` varchar(30) NOT NULL,
  `send_content` varchar(200) NOT NULL,
  `priority` tinyint(2) NOT NULL,
  `send_state` char(1) NOT NULL COMMENT '发送状态,0、未发送,1、已发送,2、发送失败',
  `create_time` datetime NOT NULL,
  `send_time` datetime DEFAULT NULL,
  `error_message` varchar(200) DEFAULT NULL COMMENT '短信发送失败后填写',
  PRIMARY KEY (`sms_id`),
  KEY `idx_mobile_phone` (`mobile_phone`),
  KEY `idx_state` (`send_state`)
) ENGINE=InnoDB AUTO_INCREMENT=1DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='短信发送表';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值