Mysql的row_format(fixed与dynamic)

在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='短信发送表';

你可能感兴趣的:(Mysql,Mysql)