惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Cyberwarzone
Cyberwarzone
V
Vulnerabilities – Threatpost
T
Tenable Blog
Forbes - Security
Forbes - Security
Simon Willison's Weblog
Simon Willison's Weblog
AWS News Blog
AWS News Blog
G
GRAHAM CLULEY
Know Your Adversary
Know Your Adversary
S
Securelist
C
Cybersecurity and Infrastructure Security Agency CISA
Project Zero
Project Zero
C
CXSECURITY Database RSS Feed - CXSecurity.com
V
Visual Studio Blog
WordPress大学
WordPress大学
Latest news
Latest news
K
Kaspersky official blog
T
Tailwind CSS Blog
T
Threat Research - Cisco Blogs
B
Blog RSS Feed
C
Cisco Blogs
博客园 - 聂微东
Martin Fowler
Martin Fowler
T
The Blog of Author Tim Ferriss
小众软件
小众软件
L
LangChain Blog
阮一峰的网络日志
阮一峰的网络日志
L
LINUX DO - 热门话题
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
P
Proofpoint News Feed
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
P
Privacy International News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
CERT Recently Published Vulnerability Notes
Cisco Talos Blog
Cisco Talos Blog
S
SegmentFault 最新的问题
Security Latest
Security Latest
Y
Y Combinator Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
L
LINUX DO - 最新话题
月光博客
月光博客
The GitHub Blog
The GitHub Blog
博客园 - 三生石上(FineUI控件)
S
Security Affairs
P
Proofpoint News Feed
D
DataBreaches.Net
有赞技术团队
有赞技术团队
云风的 BLOG
云风的 BLOG

博客园 - 野码

使用C#实现ModbusTCP通信 使用C#实现ModbusRTU通信 Modbus协议TCP和RTU报文 UDP协议通信 TCP/IP 协议通信 SerialPort串口通信 MySQL 查询索引优化的常用方法 MySql性能调优之EXPLAIN 10.ChatGPT辅助产品维护与支持 9.ChatGPT辅助产品发布与运营 8.ChatGPT辅助产品测试与质量管理 7.ChatGPT辅助产品项目管理 6.ChatGPT辅助产品原型设计 5.ChatGPT辅助用户体验设计 4.ChatGPT辅助产品数据分析 3.ChatGPT辅助产品需求管理 2.2.市场调研与用户调查 2.1.竞争分析矩阵 2.使用ChatGPT辅助竞品分析与市场调研
MySql导致索引失效的原因
野码 · 2026-03-19 · via 博客园 - 野码
  1. WHERE 或 JOIN 中对索引列进行函数/表达式处理

    • 例:WHERE DATE(col)、WHERE UPPER(col)、WHERE col + 1
  2. 在索引列上使用隐式或显式类型转换

    • 例:WHERE col = '123'(字符串与数字类型不匹配)、WHERE col = CONVERT(...)
  3. 对索引列使用前缀模糊匹配之外的模糊匹配(导致无法使用普通 B-Tree 索引)

    • 能用:WHERE col LIKE 'abc%'
    • 不能用:WHERE col LIKE '%abc' 或 WHERE col LIKE '%abc%'
  4. 左前缀索引中查询不使用最左前缀原则

    • 例:对复合索引(idx(a,b,c)),若只查询 b 或 c(没有 a),索引无法被有效利用
  5. OR 条件造成索引无法使用(或效率低)

    • 例:WHERE a = 1 OR b = 2(可通过 UNION 或调整索引优化)
  6. 不等式(<>、!=、IS NULL、IS NOT NULL)或范围查询打断复合索引后续列的使用

    • 例:WHERE a = 1 AND b > 5 AND c = 3,若 b 是范围条件,则 c 的索引可能无法继续使用
  7. 数据分片/分区与查询条件不匹配(导致全表扫描某些分区)

    • 例:分区键未在 WHERE 中使用或使用不当
  8. 索引选择性太差或基数低(例如布尔字段、低基数枚举)

    • 优化:不适合单列索引,考虑复合索引或不建索引
  9. 索引字段包含大量 NULL 值(可能影响优化器选择)

    • 可通过 WHERE IS NOT NULL 或调整数据模型
  10. 索引列顺序不当(复合索引顺序与查询条件顺序不匹配)

    • 复合索引应按查询中最常用和选择性高的列优先排列
  11. 使用 NOT、IS NULL、NOT IN、<> 等否定条件通常不能走索引

    • 例:WHERE col NOT IN (1,2,3)
  12. ORDER BY / GROUP BY 无法使用索引(列顺序或额外列导致文件排序)

    • 例:ORDER BY a,b,与索引(a)不一致或需要额外排序
  13. 隐式或显式使用 DISTINCT/函数导致临时表或文件排序

    • 可能触发全表扫描或额外排序步骤
  14. 索引失效因统计信息不准或优化器选择错误

    • 解决:ANALYZE TABLE、更新统计或强制使用索引(FORCE INDEX)谨慎使用
  15. 小表或查询返回行数很大时,优化器可能选择全表扫描(基于成本估算)

    • 非严格“失效”,但索引未被选用
  16. 使用 LIKE 时字符集或排序规则(collation)问题影响索引匹配

    • 特别是多字节字符或不区分大小写的排序规则
  17. 隐式索引不可用情况:长前缀索引、压缩或函数索引不被支持(版本/存储引擎限制)

posted @ 2026-03-19 08:44  野码  阅读(16)  评论()    收藏  举报