MySQL索引varchar长度问题(不能超过255)

Mysql varchar建索引遇到长度太长的问题:

 CREATE TABLE `t_crrs_record` (
      `ID` varchar(128) NOT NULL COMMENT '主键ID',
      `SYSTEM_CODE` varchar(32) DEFAULT NULL COMMENT '编码',
      `BUSINESS_ID` varchar(128) DEFAULT NULL COMMENT '号码',
      `USER_ID` varchar(512) DEFAULT NULL,
      `INVOKE_TIME` varchar(32) DEFAULT NULL COMMENT '时间',
      `CRRS_EVENT` varchar(512) DEFAULT NULL,
      `INVOKE_EVENT` varchar(32) DEFAULT NULL COMMENT 'event',
      `ACTION` varchar(32) DEFAULT NULL COMMENT '执行',
      `CREATED_TIME` datetime NOT NULL COMMENT '时间',
      PRIMARY KEY (`ID`),
      KEY `INDEX_BUSINESS_USER` (`BUSINESS_ID`,`USER_ID`(191)),
      KEY `INDEX_T_CRRS_RECOED_INVOKE_TIME` (`INVOKE_TIME`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='记录表'

MySQL的varchar索引只支持不超过768个字节,可以指定前缀
测试:
UTF8编码不能超过255
GBK是双字节,即:768/2=384
数据库截图

后来查看了一下资料,该博客写的比较详细
https://www.cnblogs.com/yuyue2014/p/4339090.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值