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