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

Logo

更多推荐