文章目录
1.误区
好久没搞mysql了,在看后台代码时,发现类似于ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户与设备关系表';
这条语句,有些不理解。
DROP TABLE IF EXISTS `r_usr_eqpt`;
CREATE TABLE `r_usr_eqpt` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`usrid` int(11) DEFAULT NULL COMMENT '用户id',
`eqptid` varchar(30) DEFAULT NULL COMMENT '柜设备唯一标识',
`create_time` varchar(20) DEFAULT NULL COMMENT '创建时间',
`modified_time` varchar(20) DEFAULT NULL COMMENT '修改时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户与设备关系表';
- int(11):表示显示11位,而非数据最大表示2^11次方
- varcha(30):字符串最大有30个字符
- ENGINE:使用的数据库引擎,基本上默认也是用的是这个引擎。
- AUTO_INCREMENT:自动增加,上面的
AUTO_INCREMENT=1
说明自动从1开始增加 - CHARSET:使用的字符集,上面设置的是
utf8
- COMMENT:数据库的备注
2.ENGINE 扩展理解
- 1.engine=innodb
- 提供外键约束的数据存储引擎
- 提供事务处理
- 支持commit、rollback等
- 支持行锁
- 增加并发读的用户数量
- CPU利用率高,处理大容量数据性能好
- 缓冲池,能缓冲数据和索引
- 把数据和索引放在表空间
- 2.engine=myisam
- 表单独存放在文件中
- 读取操作快
- 不支持事务操作,不容错
- 3.engine=blackhole 黑洞引擎
- 黑洞引擎,写入的任何数据都会消失,用于记录binlog做复制的中继存储!.