mysql为什么会索引过长_从 innodb 的索引结构分析,为什么索引的 key 长度不能太长?...

key 太长会导致一个页当中能够存放的 key 的数目变少,间接导致索引树的页数目变多,索引层次增加,从而影响整体查询变更的效率。

一、myisam存储引擎

1 . 测试的表结构信息

mysql> show create table tb2

Table: tb2

Create Table: CREATE TABLE `tb2` (

`a1` varchar(255) DEFAULT NULL,

`b1` varchar(255) DEFAULT NULL,

`c1` varchar(255) DEFAULT NULL,

`d1` varchar(1000) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8

1 row in set (0.00 sec)

测试加索引

(1)添加单列索引,能够添加成功(报出warning),但实际添加的是前缀索引。

mysql> alter table tb2 add index idx1 (d1);

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 |

+---------+------+----------------------------------------------------------+

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值