造成索引失效的情况列举

某些情况下,查询条件中带有索引列,但是用explain执行计划分析时,却发现key值为null;
下面的几种大致场景可能引起这种情况,列举出来,希望大家不要踩坑.

表示广义或者表示否定的查询条件

例如<>、NOT、in、not exists 因为这类查询条件无法精确定位,故而执行计划会选择全表扫描;

前置通配符

即like关键字的使用 如 where a like ‘%b’,这样也会造成 a列的索引效果失效 ,但是若使用后置通配符则不会影响索引效果 例如 where a like ‘b%’,造成这种效果差异的主要原因是使用后置通配符相对而言比前置通配符更方便筛选数据;

索引列比较

某一个表格table 的列A和B都建立了单独索引,查询条件用A=B则会导致索引失效;

索引列值出现null

如果索引列值为null,索引值得个数少于表的count(*),这样一来,执行计划都会扫描全表了,而不是单独扫描索引列;

在where条件中对索引列使用函数

在where条件中 对索引列使用部分函数会导致索引失效,因为大部分函数会改变索引列的值,所以并不方便优先完成对比

转换索引列的数据类型

对索引列的数据类型进行了转换也会造成索引失效

水平有限,能列举的就是这些,欢迎补充

### 安装与配置Visual Studio Code (VSCode) 及其开发环境于Ubuntu #### Visual Studio Code 的安装方法 可以通过多种方式来安装 VSCode,在 Ubuntu 上一种推荐的方法是利用 `snap` 或者官方提供的 `.deb` 文件。然而,另一种提及的方式涉及使用 `ubuntu-make` 工具来进行安装[^2]: ```bash sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make sudo apt-get update sudo apt-get install ubuntu-make umake ide visual-studio-code ``` 上述命令会引导用户选择安装路径,并按照指示输入相应选项完成安装过程。 #### 更新系统软件包索引 无论采用哪种方式进行安装之前或者之后,保持系统的最新状态总是好的实践。这可以确保所有已安装的应用程序能够正常工作并且兼容新安装的工具。为此目的,执行如下命令以更新本地APT缓存并升级现有软件包至最新版本[^4]: ```bash sudo apt update && sudo apt upgrade ``` #### 配置 C++ 开发环境 一旦成功安装了 VSCode 后,为了设置好用于编写和调试C++项目的集成开发环境(IDE),建议参照微软官方文档中的指导说明进行操作[^1]。此指南涵盖了必要的扩展插件安装、编译器设定以及如何创建简单的项目模板等内容。 #### 常见问题及其解决方案 当遇到特定错误消息或者其他技术难题时,下面列举了一些可能碰到的情况及对应的处理办法: - **无法启动应用程序**: 如果尝试打开VSCode却没有任何响应,则可能是由于缺少某些依赖库造成的;此时应该检查日志文件寻找线索,并考虑重新安装应用。 - **代码补全功能失效**: 这通常是因为未正确加载相应的语言支持组件所致。确认已经安装了适用于目标编程语言(比如C/C++)的支持插件,并重启编辑器使更改生效。 - **构建失败**: 构建过程中出现问题往往指向不完整的构建链路或是不当的项目属性定义。验证gcc/g++等编译器是否已被正确安裝,并且在VSCode内的launch.json 和 c_cpp_properties.json 中指定了合适的参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值