创建表时附带的ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic 的解释

ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE = utf8_general_ci ROW_FORMAT的解释

1.示例

CREATE TABLE `student`  (
  `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
  `score` int(40) NULL DEFAULT NULL,
  `course` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

2.解释

1.ENGINE=InnoDB使用innodb引擎,从zhidaoMySQL 5.6开始默认使用该引擎
2.DEFAULT CHARSET=utf8 数据库默认编码为utf-8

3.COLLATE utf8_general_ci:数据库校对规则。ci是case insensitive的缩写,意思是大小写不敏感;相对的是cs,即case sensitive,大小写敏感;还有一种是utf8_bin,是将字符串中的每一个字符用二进制数据存储,区分大小写。

4.ROW_FORMAT = Dynamic:在mysql中, 若一张表里面不存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫静态表,即该表的row_format是Fixed,就是说每条记录所占用的字节一样。其优点读取快,缺点浪费额外一部分空间。若一张表里面存在varchar、text以及其变形、blob以及其变形的字段的话,那么张这个表其实也叫动态表,即该表的row_format是Dynamic,就是说每条记录所占用的字节是动态的。其优点节省空间,缺点增加读取的时间开销。所以,做搜索查询量大的表一般都以空间来换取时间,设计成静态表。
扩展:
1.InnoDB,是MySQL的数据库引擎之复一,为MySQL AB发布binary的标准之一。
2.AUTO_INCREMENT会在新记录插入表中制时生成一个唯一的数字。希望在每次插入新记录时,自动地创建主键字段的值,可zd以在表中创建一个 auto-increment 字段。
3.AUTO_INCREMENT=1 自增键的起始序号为1

你可能感兴趣的:(mysql)