乐清做网站价格/竞价推广怎么做

乐清做网站价格,竞价推广怎么做,免费咨询服务期,网站后台登录不进去1. 索引失效的常见原因 虽然索引可以加速查询&#xff0c;但在某些情况下&#xff0c;MySQL 可能不会使用索引&#xff0c;甚至使用索引反而更慢。 以下是一些常见导致索引失效的原因&#xff1a; ① 查询条件使用了 ! 或 <> 原因&#xff1a;索引通常用于范围或等值查…

1. 索引失效的常见原因

虽然索引可以加速查询,但在某些情况下,MySQL 可能不会使用索引,甚至使用索引反而更慢
以下是一些常见导致索引失效的原因:

① 查询条件使用了 != 或 <>
  • 原因:索引通常用于范围或等值查询,而 != 无法高效利用 B+ 树索引。

  • 示例

    SELECT * FROM users WHERE age != 30;
    
    • 失效原因!= 使 MySQL 需要扫描大量行,索引无法高效过滤。
② OR 连接多个条件,但只有部分字段有索引
  • 示例

    SELECT * FROM users WHERE age = 30 OR name = 'Alice';
    
    • 失效原因:如果 name 字段没有索引,MySQL 可能选择 全表扫描 而不是使用 age 的索引。
  • 优化方法:为 name 字段也添加索引,或者拆分查询:

      SELECT * FROM users WHERE age = 30
    UNION
    SELECT * FROM users WHERE name = 'Alice';
    
③ LIKE 以 % 开头
  • 示例

    SELECT * FROM users WHERE name LIKE '%Alice%';
    
    • 失效原因:B+ 树索引按照前缀匹配,以 % 开头无法使用索引。

    • 优化方法:

      • 如果 name需要前缀匹配,可以使用

        前缀索引:

        CREATE INDEX idx_name ON users(name(3)); -- 仅索引前3个字符
        
      • 或者改用,全文索引:

        ALTER TABLE users ADD FULLTEXT(name);
        SELECT * FROM users WHERE MATCH(name) AGAINST('Alice');
        
④ 隐式类型转换
  • 示例

    SELECT * FROM users WHERE phone = 13800001234;  -- phone 是 VARCHAR 类型
    
    • 失效原因phoneVARCHAR,但查询时写成 INT,MySQL 进行隐式转换,导致索引失效。

    • 优化方法:使用正确的数据类型:

         
      SELECT * FROM users WHERE phone = '13800001234';
      
⑤ IS NULL 或 IS NOT NULL
  • 示例

    SELECT * FROM users WHERE address IS NULL;
    
    • 失效原因:B+ 树索引不存储 NULL 值,查询 NULL 可能导致索引失效。
  • 优化方法

    • 避免 NULL 值,改用默认值:

      ALTER TABLE users MODIFY address VARCHAR(255) NOT NULL DEFAULT '';
      
    • 使用 col IS NOT NULL 可能仍然走索引(视索引情况而定)。

⑥ 低选择性字段
  • 示例

    • 失效原因gender 只有 malefemale,选择性低,索引加速效果不明显,MySQL 可能选择全表扫描。
  • 优化方法

    • 索引一般适用于高选择性字段,如 idemail

    • 如果 gender 需要频繁查询,可以考虑

      联合索引,例如:

      CREATE INDEX idx_gender_age ON users(gender, age);
      

      这样,查询 WHERE gender = 'male' AND age > 30时仍能利用索引。


2. 如何排查索引效果?

可以使用 EXPLAIN 命令分析 SQL 是否走索引,以及索引的效率。

① 使用 EXPLAIN 分析 SQL 执行计划
EXPLAIN SELECT * FROM users WHERE age = 30;

返回示例:

idselect_typetabletypepossible_keyskeykey_lenrefrowsExtra
1SIMPLEusersrefidx_ageidx_age4const10Using index
  • type = ref:表示使用了索引。
  • key = idx_age:表示使用了 age 索引。
  • rows = 10:表示扫描了 10 行数据,索引效果较好。

如果 type = ALL,表示全表扫描,说明索引可能失效!


② SHOW INDEX FROM table_name 查看索引
SHOW INDEX FROM users;

查看表 users 上的索引信息,确认索引是否创建正确。


③ ANALYZE TABLE & OPTIMIZE TABLE

如果表数据更新较多,索引可能变得不高效,可以手动优化:

ANALYZE TABLE users;  -- 更新索引统计信息
OPTIMIZE TABLE users; -- 重建索引

总结

影响索引使用的因素是否会导致索引失效解决方案
!= / < >✅ 失效改用 BETWEENIN
OR 但部分字段无索引✅ 失效拆分查询或为所有字段加索引
LIKE '%xxx%'✅ 失效改用前缀索引或全文索引
类型转换✅ 失效确保查询和字段类型一致
IS NULL✅ 可能失效使用默认值替代 NULL
低选择性索引✅ 可能失效使用联合索引提高选择性
EXPLAIN 显示 ALL✅ 失效重新设计索引或优化 SQL

使用 EXPLAIN + SHOW INDEX + ANALYZE TABLE 等工具,可以有效排查 MySQL 索引是否生效,并进行优化。


希望这份索引优化指南对你有帮助!如果有任何疑问,欢迎继续探讨 😊🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/73459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LVGL移植到6818开发板

一、移植步骤 1.lv_config.h 配置文件启动 framebuffer 2、lv_config.h 配置文件关闭SDL 2.修改main.c 去掉SDL输入设备 3.修改Makefile 文件启动交叉编译 去掉警告参数 去掉SDL库 4.交叉编译代码 make clean #清空 ⭐ 必须要清空一次再编译&#xff01; 因为修改了 lv_con…

linux系统命令——权限

一、有哪些权限 读&#xff08;r&#xff09;——对应数字4 写&#xff08;w&#xff09;——对应数字2 执行&#xff08;x&#xff09;——对应数字1 二、权限及数字的对应 4对应r-- 2对应-w- 1对应--x 5对应r-x 6对应rw- 7对应rwx 三、文件的基本属性 如图&#…

Django项目之订单管理part3

一.前言 前面两章已经把登录给做完了&#xff0c;这一章节要说的是登录的校验和登录以后的菜单展示&#xff0c;内容还是很多的。 二.菜单和权限 2.1 是否登录 当我们进入其他的页面&#xff0c;我们首先要判断是否登录&#xff0c;这个时候我们就要借助中间件来做session和…

AI大模型测试用例生成平台

AI测试用例生成平台 项目背景技术栈业务描述项目展示项目重难点 项目背景 针对传统接口测试用例设计高度依赖人工经验、重复工作量大、覆盖场景有限等行业痛点&#xff0c;基于大语言模型技术实现接口测试用例智能生成系统。 技术栈 LangChain框架GLM-4模型Prompt Engineeri…

【论文笔记】Contrastive Learning for Compact Single Image Dehazing(AECR-Net)

文章目录 问题创新网络主要贡献Autoencoder-like Dehazing NetworkAdaptive Mixup for Feature PreservingDynamic Feature Enhancement1. 可变形卷积的使用2. 扩展感受野3. 减少网格伪影4. 融合空间结构信息 Contrastive Regularization1. 核心思想2. 正样本对和负样本对的构建…

异步加载错误如何解决

首先是 提供两张图 如果数据过多的情况下我在所内和住家形式频繁的来回切换 导致数据展示的不一样 大家是不是有这样的问题 这个是导致了数据展示有问题的情况 住家的情况本来是没有几层的 下面我帮大家解决一下 // 防止异步延迟 const Noop () > { } const lhl (resDa…

编译支持 RKmpp 和 RGA 的 ffmpeg 源码

一、前言 RK3588 支持VPU硬件解码&#xff0c;需要rkmpp进行调用&#xff1b;支持2D图像加速&#xff0c;需要 RGA 进行调用。 这两个库均能通过 ffmpeg-rockchip 进行间接调用&#xff0c;编译时需要开启对应的功能。 二、依赖安装 编译ffmpeg前需要编译 rkmpp 和 RGA&#xf…

Java多线程与高并发专题——原子类和 volatile、synchronized 有什么异同?

原子类和 volatile异同 首先&#xff0c;通过我们对原子类和的了解&#xff0c;原子类和volatile 都能保证多线程环境下的数据可见性。在多线程程序中&#xff0c;每个线程都有自己的工作内存&#xff0c;当多个线程访问共享变量时&#xff0c;可能会出现一个线程修改了共享变…

207、【图论】孤岛的总面积

题目 思路 相比于 206、【图论】岛屿数量&#xff0c;就是在这个代码的基础上。先遍历边界&#xff0c;将边界连接的岛屿变为0&#xff0c;然后再计算一遍当前为1的岛屿面积。 代码实现 import collectionsn, m list(map(int, input().split())) graph []for _ in range(n…

【GPT入门】第21课 langchain核心组件

【GPT入门】第21课 langchain核心组件 1. langchain 核心组件2.文档加载器 Document loader3.文档处理器3.1 langchain_text_splitters3.3 FAISS向量数据库和向量检索主要作用应用场景4. 对话历史管理1. langchain 核心组件 模型 I/O 封装 LLMs:大语言模型 Chat Models:一般…

应急响应靶机练习-Linux2

1.背景 前景需要&#xff1a;看监控的时候发现webshell告警&#xff0c;领导让你上机检查你可以救救安服仔吗&#xff01;&#xff01; 挑战内容&#xff1a; &#xff08;1&#xff09;提交攻击者IP &#xff08;2&#xff09;提交攻击者修改的管理员密码(明文) &#xff08;…

分享一个免费的CKA认证学习资料

关于CKA考试 CKA&#xff08;Certified Kubernetes Administrator&#xff09;是CNCF基金会&#xff08;Cloud Native Computing Foundation&#xff09;官方推出的Kubernetes管理员认证计划&#xff0c;用于证明持有人有履行Kubernetes管理的知识&#xff0c;技能等相关的能力…

【最新】 ubuntu24安装 1panel 保姆级教程

系统&#xff1a;ubuntu24.04.1 安装软件 &#xff1a;1panel 第一步&#xff1a;更新系统 sudo apt update sudo apt upgrade 如下图 第二步&#xff1a;安装1panel&#xff0c;运行如下命令 curl -sSL https://resource.fit2cloud.com/1panel/package/quick_start.sh -o …

UE4-UE5虚幻引擎,前置学习一--Console日志输出经常崩溃,有什么好的解决办法

有些差异 这么牛逼的引擎&#xff0c;居然有这种入门级别的问题&#xff0c;一触发清理&#xff0c;大概率(80%)会崩溃 无论虚幻5还是UE4都有这个问题&#xff0c;挺烦人的 实在忍不了了&#xff0c;这次&#xff0c;今天 就想问问有什么好的处理方法么&#xff1f;&#x…

【微服务】Nacos 配置动态刷新(简易版)(附配置)

文章目录 1、实现方法2、配置依赖 yaml3、验证效果 1、实现方法 环境&#xff1a;Nacos、Java、SpringBoot等 主要是在boostrap.yaml中的data-id属性下配置refresh:true来实现动态更新 2、配置依赖 yaml 具体的版本参考官方的说明&#xff1a;官方版本说明 <!--读取boo…

设计模式之备忘录设计模式

备忘录设计模式&#xff08;Memento Pattern&#xff09; 在不破坏封闭的前提下&#xff0c;捕获一个对象的内部状态&#xff0c;保存对象的某个状态&#xff0c;以便在适当的时候恢复对象&#xff0c;又叫做快照模式&#xff0c;属于行为模式备忘录模式实现的方式需要保证被保…

【最后203篇系列】016 Q201架构思考

前言 Q200已经达到了我既定的目标&#xff0c;在最近的3个月&#xff0c;我需要进一步完善&#xff0c;达到可以试产的程度。 在这个过程当中&#xff0c;许多知识和体会一直在变。 qtv200到目前&#xff0c;虽然通过习惯(每晚运行离线策略和比对)方式维持了注意力的集中&…

音视频入门基础:RTP专题(20)——通过FFprobe显示RTP流每个packet的信息

通过FFprobe命令&#xff1a; ffprobe -protocol_whitelist "file,rtp,udp" -of json -show_packets XXX.sdp 可以显示SDP描述的RTP流每个packet&#xff08;数据包&#xff09;的信息&#xff1a; 对于RTP流&#xff0c;上述的“packet”&#xff08;数据包&#…

LLM后训练:解锁大型语言模型推理能力的关键路径

引言&#xff1a;从语言生成到逻辑推理的跃迁 大型语言模型&#xff08;LLMs&#xff09;通过预训练掌握了海量语言模式&#xff0c;但其核心缺陷——幻觉、逻辑断裂、价值观偏差——暴露了单纯预训练的局限性。后训练&#xff08;Post-Training&#xff09;作为预训练后的精修…

9.贪心算法

简单贪心 1.P10452 货仓选址 - 洛谷 #include<iostream> #include<algorithm> using namespace std;typedef long long LL; const int N 1e510; LL a[N]; LL n;int main() {cin>>n;for(int i 1;i < n;i)cin>>a[i];sort(a1,a1n);//排序 LL sum 0…