SQL索引-提升查询速度实战

本文详述了在SQL中为500万行数据的某列创建索引的过程,以及如何处理'used in key specification without a key length'的错误。通过创建索引,查询速度从30.5秒降低到3.24秒,显著提高了数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

本文主要记录SQL索引实战及出现(used in key specification without a key length)报错处理方式的相关笔记


1. 索引建立前查找速度

对一个500多万行的数据根据某一列的一个值进行查找,查找语句为:

select * from table_all where `MD5-作者ID`='d27cefd2ec46e01df063121af5b022e6'

可以看到最终查找使用时间为30.5s:

2. 索引建立及报错处理

下面我们对这一列新建一个索引,使用普通索引,语句为:

alter table table_all add index idx_last(`MD5-作者ID`)

这里可能会报错显示:

这是因为我们给设置的类型为text,不是定长的,非定长列新建索引会报这个错误,所以将类型更改为varchar()即可,如果使用navc,可以直接在“设计表”里更改,也可以直接使用sql语句进行更改,查询语句更改会慢一些,要十几分钟,更改语句如下:

ALTER TABLE table_all CHANGE COLUMN `MD5-作者ID` `MD5-作者ID` VARCHAR(255)

之后再运行生成结果即可:

3. 索引建立后查找速度

最后再试一下查询速度,可以看到查询速度从30.5s降为了3.24s,极大的提升了查询速度:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sky-JT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值