mysql查询优化

本文介绍了两种提高MySQL查询效率的方法:一是避免在LIKE模式的开始位置使用通配符,二是减少自动类型转换的使用。通过具体例子说明了如何利用这些技巧来优化SQL查询,并解释了为何这些方法能有效提升查询速度。

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

1、不要在LIKE模式的开始位置使用通配符。

不要出于习惯而将符号%放在字符串的两侧。

如果只想找到出现在数据列开始位置的字符串,就需要一个%.假定你想找Mac开始包含的名字。如MacGre和MacDel.就需要这样:

where last_name like 'Mac%';

优化程序看到后,会使用索引找到匹配的数据行,就好像下面的表达式,这种表达式允许对last_name使用索引:

where last_name >='Mac' and last_name <'Mad'

2、避免过多使用MYSQL的自动类型转换

如:

select * from mytabl where age =4;

select * from mytabl where age='4';


上面两条语句返回同样的结果,不过第二条语句效率更低,因为需要类型转换。且,如果age含有索引,那么含有类型转换的比较可能会阻止索引得到使用。
在什么情况下索引不能使用呢?看:

select * from ytabl where `name` = '7';


如果name为varchar,则索引失效。因为name数据列里可能会有很多不同的字符串在转换为数值后等于'7'.比如'7','7.0'.要想把它们都找出来,唯一的办法就是依次读取、转换,再进行比较。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值