mysql sql语句中的ENGINE,AUTO_INCREMENT,CHARSET的理解

本文解析了MySQL中InnoDB和MyISAM引擎的特性,讨论了 AUTO_INCREMENT和CHARSET设置,并澄清了关于ENGINE选择的常见误区。了解不同引擎对并发、事务支持和性能的影响。

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

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做复制的中继存储!.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值