论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
数据库
›
Oracle
›
mysql你大概误以为走索引的慢查询sql
mysql你大概误以为走索引的慢查询sql
饭宝
论坛元老
|
2024-10-16 06:51:34
|
显示全部楼层
|
阅读模式
楼主
主题
1653
|
帖子
1653
|
积分
4959
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
有时间,
开发
人员或数据库管理员大概会假设他们的SQL查询将使用索引来进步性能,但现实上由于某些缘故原由,查询并未使用索引。下面是一些常见情况,这些情况大概导致SQL查询没有如预期那样使用索引:
1. 使用了函数或计算
如果在索引列上使用了函数或任何计算,那么纵然该列上有索引,查询也大概不会使用该索引。
SELECT * FROM users WHERE YEAR(birthdate) = 1990;
复制代码
在这个例子中,纵然 birthdate 列上有索引,YEAR() 函数的使用也大概制止了索引的使用。
2. 使用了类型不匹配的比较
数据类型不匹配也会导致索引失效。
SELECT * FROM orders WHERE customer_id = '123'; -- 假设 customer_id 是 INT 类型
复制代码
纵然 customer_id 列上有索引,将整数与字符串举行比较也大概导致不使用索引。
3. 使用了前导模糊查询
在使用 LIKE 操纵符举行模糊查询时,如果模式的开始部分包罗了通配符,索引将不会被使用。
SELECT * FROM products WHERE name LIKE '%iPhone%';
复制代码
这里,纵然 name 列上有索引,但是因为 LIKE 查询以 % 开头,索引大概不会被使用。
4. 复合索引未按次序使用
在复合索引中,如果查询没有遵循索引列的次序,那么索引大概不会被有效地使用。
-- 假设有一个索引是 (first_name, last_name)
SELECT * FROM users WHERE last_name = 'Smith';
复制代码
在这个例子中,查询仅使用了复合索引的第二个列,大概导致索引不被使用,或者不被有效使用。
5. 使用了 OR 条件
在某些情况下,使用 OR 条件大概会导致索引不被使用,尤其是当 OR 条件毗连的列不都有索引时。
SELECT * FROM users WHERE last_name = 'Smith' OR age = 25;
复制代码
如果 last_name 和 age 列不都有索引,这个查询大概不会使用索引。
6. 索引列包罗 NULL 值
某些数据库系统中,如果索引列包罗大量的 NULL 值,查询大概不会使用该索引。
SELECT * FROM users WHERE profile_picture IS NULL;
复制代码
如果有很多用户没有 profile_picture,那么纵然这列上有索引,查询也大概不会使用索引。
7. 选择性不高的列
如果索引列的选择性(唯一值的比例)非常低,查询优化器大概会决定不使用索引,因为扫描全表大概更高效。
SELECT * FROM users WHERE gender = 'M';
复制代码
如果 gender 列的值非常倾斜(例如,分布在 'M' 和 'F' 之间),那么这个查询大概不会使用索引。
怎样验证查询是否使用索引
为了验证查询是否现实上使用了索引,可以在执行查询前使用 EXPLAIN(在某些数据库中大概是 EXPLAIN PLAN)来查看查询的执行筹划。
EXPLAIN SELECT * FROM users WHERE last_name = 'Smith';
复制代码
执行筹划将告诉你是否有索引被使用,以及查询是怎样执行的。基于这些信息,你可以调解查询或索引策略以优化性能。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
饭宝
论坛元老
这个人很懒什么都没写!
楼主热帖
53基于java的资源博客论坛系统设计与实 ...
zotero+坚果云实现多pc端及iPad同步管 ...
Android——一个简单的记账本APP ...
天涯神贴合集500篇(2023最新) ...
需求:清空三个月前的操作日志,并生成 ...
面试官:@Configuration 和 @Component ...
Python潮流周刊#5:并发一百万个任务要 ...
nginx 常用指令配置总结
【分布式计算】学习笔记(期末复习) ...
PerfView专题 (第十一篇):使用 Diff ...
标签云
集成商
AI
运维
CIO
存储
服务器
浏览过的版块
数据仓库与分析
登录参与点评抽奖加入IT实名职场社区
下次自动登录
忘记密码?点此找回!
登陆
新用户注册
用其它账号登录:
关闭
快速回复
返回顶部
返回列表