问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

mysql索引名太长怎么办

发布网友 发布时间:2022-05-02 15:10

我来回答

3个回答

懂视网 时间:2022-05-02 19:32

  大家看明白了吧,吧row_formatl类型修改为这两种模式。

下面是我做的过程图:
技术分享图片

可以看到row_formatl类型,下面修改类型
技术分享图片

CREATE TABLE test2 ( id int(11) NOT NULL AUTO_INCREMENT, date varchar(25) DEFAULT NULL, sess_id varchar(255) DEFAULT NULL, keyword varchar(25) NOT NULL, url_n varchar(3) DEFAULT NULL, s_n varchar(3) DEFAULT NULL, select_url varchar(255) DEFAULT NULL, UNIQUE KEY (id,keyword) ) ENGINE=innodb DEFAULT row_format=dynamic;

技术分享图片

技术分享图片

技术分享图片

技术分享图片

ok,了这就可以插入超过767字节的索引了,怎么样,没看明白?那就对了,只有自己做过才能看懂这图片中代表的都是什么意思。加油吧。

修改Mysql索引长度限制

标签:情况   数据库表   int   最大   默认值   log   ble   shadow   链表   

热心网友 时间:2022-05-02 16:40

1. 数据库版本:阿里云RDS MySQL5.1
mysql> select @@version;
+-------------------------------+
| @@version |
+-------------------------------+
| 5.1.61-Alibaba-rds-201404-log |
+-------------------------------+
1 row in set (0.00 sec)

2. 测试的表结构信息
mysql> show create table tb2\G
*************************** 1. row ***************************
Table: tb2
Create Table: CREATE TABLE `tb2` (
`a` varchar(255) DEFAULT NULL,
`b` varchar(255) DEFAULT NULL,
`c` varchar(255) DEFAULT NULL,
`d` varchar(1000) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

3. 测试加索引
(1)添加单列索引,能够添加成功(报出warning),但实际添加的是前缀索引。
mysql> alter table tb2 add index idx1 (d);
Query OK, 0 rows affected, 2 warnings (0.00 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> show warnings;
+---------+------+----------------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------------+
| Warning | 1071 | Specified key was too long; max key length is 1000 bytes |
| Warning | 1071 | Specified key was too long; max key length is 1000 bytes |
+---------+------+----------------------------------------------------------+
2 rows in set (0.00 sec)
表结构信息:
mysql> show create table tb2\G
*************************** 1. row ***************************
Table: tb2
Create Table: CREATE TABLE `tb2` (
`a` varchar(255) DEFAULT NULL,
`b` varchar(255) DEFAULT NULL,
`c` varchar(255) DEFAULT NULL,
`d` varchar(1000) DEFAULT NULL,
KEY `idx1` (`d`(333))
) ENGINE=MyISAM DEFAULT CHARSET=utf8
1 row in set (0.00 sec)

(2)添加组合索引,会执行失败。
mysql> alter table tb2 add index idx1 (a,b);
ERROR 1071 (42000): Specified key was too long; max key length is 1000 bytes
4. 分析
myisam存储引擎在创建索引的时候,索引键长度是有一个较为严格的长度*的,所有索引键最大长度总和不能超过1000,而且不是实际数据长度的总和,而是索引键字段定义长度的总和。
主要字符集的计算方式:
latin1 = 1 byte = 1 character
uft8 = 3 byte = 1 character
gbk = 2 byte = 1 character

热心网友 时间:2022-05-02 17:58

模糊查询 like
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年9月走亲访友黄道吉日 2024年9月哪天适合走亲访友 2024年7月5日是走亲访友的黄道吉日吗 2024年7月5日适合走亲访友吗 交强险还需要交车船税吗 测评| 平安家易保(家财险):限商品房,自住版、房东版、租客版 女的23岁去读大学年龄是不是太大了? 请问中国石化怎么操作?23.00元买入的,能继续持有吗?中国石化的股改是怎... 600028我是21元买入的,现已经跌到15元多了,怎么办呀?赔死了!!_百度知 ... 请问600028中国石化现在还可以买吗? ...一个游戏机插在电视上耍的那种小游戏,超级玛丽,冒险岛等,你们还玩... 最难小游戏排行榜(十大最难玩的家庭小游戏) 您好,社保卡密码输入错误三次,无法在输入,是否24小时会自动解锁呢? n是偶数还是奇数 用n表示整数,那么偶数可表示为什么,奇数呢 请问社会保障卡的密码锁定,多久会自动解除? 社保卡输错密码被锁时间了以后解锁了还能用吗? 用n表示偶数与奇数的式子 我的社会保障卡密码输入多次,被锁定24小时后会自动解除吗? 社保卡输了三次密码都是错误,请问会锁吗?那明天能不能自动解锁呢? 医保卡输错密码三次被锁住了,怎么办?是不是像银行卡一样过了24小时会解锁?_百度问一问 社保卡密码输错号24小时以后还可以重新输密码吗 新手开网店卖什么比较合适? 基金涨的时候15:00后卖了,第二天基金净值跌了,总资产会少吗? 新手开网店卖什么最适合 新手开网店卖什么容易简单? 新手开网店应该卖什么? iphone8plus掉水里了在米桶里放了两天现在可以开机,这是不是说明没事了? 苹果8plus掉水里了被打湿了该怎么处理呢? 怎样在电脑里禁用U盘? 企业所得税税额计算 户口本用拍照在手机上可以办结婚证吗? 我建设银行的社保卡输错三次密码然后上面显示当日次数*。请问24小时以后可以自动解锁吗 用n表示整数,那么偶数可表示为什么,奇数 为什么n一定要是偶数呢? 用含有字母n的式子表示任意两个相邻的数,奇数是什么?偶数是什么 请问n为什么是偶数? 设n表示任意一个书,偶数表示什么? 连续的偶数和奇数用n怎么表示,为什么 微信上交了医保发票怎么找? 为什么n为偶数的时候第一项还是n=1 如果n是奇数那么偶数可以表示为什么 18年医保用微信交费那发票那里打 什么是奇数?什么是偶数?什么是质数?什么是合数? 当n为偶数时,他们什么关系? 》如果n是偶数那么,和它相邻的两个数是什么和什么这两个都是什么 当n是奇数时,第n个数是什么数 当n是偶数时,第n个数是什么数 设计一个算法 判断n是否为偶数 vivox9怎么媳屏幕录像 请问一下maya如何卸载干净 求助,101卸载maya始终卸载不干净 这是什么手机里的图标?