MySQL之索引失效的情況

什么情況下索引會失效?

  1. 違反最左前綴原則
  2. 范圍查詢右邊的列不能使用索引
  3. 不要在索引列上進行運算操作
  4. 字符串不加單引號導致索引失效
  5. 以%開頭的like模糊查詢

什么情況下索引會失效?

示例,有user表如下

CREATE TABLE `user` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '技術主鍵',`name` varchar(100) DEFAULT NULL COMMENT '姓名',`vip` varchar(2) DEFAULT NULL COMMENT 'vip等級',`tel` varchar(50) DEFAULT NULL COMMENT '電話',PRIMARY KEY (`id`),KEY `idx_1` (`name`) USING BTREE,KEY `idx_2` (`vip`,`tel`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用戶表';

1、違反最左前綴原則

如果是復合索引,要遵守最左前綴原則,指的是查詢從索引的最左前列開始,且不跳過索引中的列,匹配最左前綴走索引。

如下,復合索引idx_2(vip,tel),它最多的前綴有兩個:vip、vip tel。

那如果,有索引idx(col1,col2,col3),那么它最多的前綴有三個:col1、col1 col2、col1 col2 col3。

正例

反例

2、范圍查詢右邊的列不能使用索引

3、不要在索引列上進行運算操作

4、字符串不加單引號導致索引失效

字符串沒加單引號,MySQL的查詢優化器會自動進行“類型轉換”,導致索引失效。

正例:

反例:

5、以%開頭的like模糊查詢

如果僅僅是尾部模糊匹配('137%'),索引不會失效,如果是頭部模糊匹配('%137'),索引會失效。

正例:

反例:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/38177.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/38177.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/38177.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實驗1 多層感知器設計(MLP)

1.實驗目的 掌握多層感知器的原理。掌握多層感知器的設計、訓練和測試。2.實驗要求 設計一個多層感知器,用于對給定的數據進行分類。要求代碼格式規范,注釋齊全,程序可正常運行。 3.模型設計 實驗設計一個多層感知機,三層機構,只含一個隱藏層,輸入層,隱藏層,輸出層 1…

JAVA期末速成庫(11)第十二章

一、習題介紹 第十二章 Check Point:P454 12.1,12.9,12.10,12,12 二、習題及答案 12.1 What is the advantage of using exception handling? 12.1使用異常處理的優勢是什么? 答:使用異常處理有以下優勢: 1. 提高…

C++ 模板類的示例-數組

類模板可以有非通用類型參數:1)通常是整型(C20標準可以用其它的類型);2)實例化模板時必須用常量表達式;3)模板中不能修改參數的值;4)可以為非通用類型參數提供…

Android中使用performClick觸發點擊事件

Android中使用performClick觸發點擊事件 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿!今天我們將探討在Android開發中如何使用 performClick() 方法來觸發點擊…

數據庫-python SQLite3

數據庫-python SQLite3 一:sqlite3 簡介二: sqlite3 流程1> demo2> sqlite3 流程 三:sqlite3 step1> create table2> insert into3> update4> select1. fetchall()2. fetchone()3. fetchmany() 5> delete6> other step 四&#…

Spark join數據傾斜調優

Spark中常見的兩種數據傾斜現象如下 stage部分task執行特別慢 一般情況下是某個task處理的數據量遠大于其他task處理的數據量,當然也不排除是程序代碼沒有冗余,異常數據導致程序運行異常。 作業重試多次某幾個task總會失敗 常見的退出碼143、53、137…

【電路筆記】-放大器類型

放大器類型 文章目錄 放大器類型1、概述2、關于偏置的注意事項3、A類(Class A)放大器4、B類(Class B)放大器5、AB類(Class AB)放大器6、C類(Class C)放大器7、總結1、概述 放大器通常根據輸出級的結構進行分類。 事實上,功率放大確實發生在該階段,因此輸出信號的質量和…

Arduino (esp ) 下String的內存釋放

在個人的開源項目 GitHub - StarCompute/tftziku: 這是一個通過單片機在各種屏幕上顯示中文的解決方案 中為了方便快速檢索使用了string,于是這個string在esp8266中占了40多k,原本以為當string設置為""的時候這個40k就可以回收,結果發覺不行…

【JS異步編程】async/await——用同步代碼寫異步

歷史小劇場 懂得暴力的人,是強壯的;懂得克制暴力的人,才是強大的。----《明朝那些事兒》 什么是 async/await async: 聲明一個異步函數 自動將常規函數轉換成Promise,返回值也是一個Promise對象;只有async函數內部的異…

Java SE入門及基礎(59) 線程的實現(上) 線程的創建方式 線程內存模型 線程安全

目錄 線程(上) 1. 線程的創建方式 Thread類常用構造方法 Thread類常用成員方法 Thread類常用靜態方法 示例 總結 2. 線程內存模型 3.線程安全 案例 代碼實現 執行結果 線程(上) 1. 線程的創建方式 An application t…

利用 Docker 簡化 Nacos 部署:快速搭建 Nacos 服務

利用 Docker 簡化 Nacos 部署:快速搭建 Nacos 服務 引言 在微服務架構中,服務注冊與發現是確保服務間通信順暢的關鍵組件。Nacos(Dynamic Naming and Configuration Service)作為阿里巴巴開源的一個服務發現和配置管理平臺&…

任務調度器——任務切換

一、開啟任務調度器 函數原型: void vTaskStartScheduler( void ) 作用:用于啟動任務調度器,任務調度器啟動后, FreeRTOS 便會開始進行任務調度 內部實現機制(以動態創建為例): &#xff0…

Linux 安裝、配置Tomcat 的HTTPS

Linux 安裝 、配置Tomcat的HTTPS 安裝Tomcat 這里選擇的是 tomcat 10.X ,需要Java 11及更高版本 下載頁 ->Binary Distributions ->Core->選擇 tar.gz包 下載、上傳到內網服務器 /opt 目錄tar -xzf 解壓將解壓的根目錄改名為 tomat-10 并移動到 /opt 下, 形成個人…

測評推薦:企業管理u盤的軟件有哪些?

U盤作為一種便攜的存儲設備,方便易用,被廣泛應用于企業辦公、個人學習及日常工作中。然而,U盤的使用也帶來了數據泄露、病毒傳播等安全隱患。為了解決這些問題,企業管理U盤的軟件應運而生。 本文將對市面上流行的幾款U盤管理軟件…

Hadoop3:Yarn容量調度器配置多隊列案例

一、情景描述 需求1: default隊列占總內存的40%,最大資源容量占總資源60%,hive隊列占總內存的60%,最大資源容量占總資源80%。 二、多隊列優點 (1)因為擔心員工不小心,寫遞歸死循環代碼&#…

數據處理:四選一、四關聯

今天去面試,面試官們給我一個‘選擇’,有四個選項:‘展示你的才華’、‘展示你的美貌’、‘展示你的才華與美貌’、‘都不展示’ {label: “選擇”,children: [{label: “展示你的才華”,children: [],isShow: talentModal,click: () > {i…

電路筆記(電源模塊): 基于FT2232HL實現的jtag下載器硬件+jtag的通信引腳說明

JTAG接口說明 JTAG 接口根據需求可以選擇20針或14針的配置,具體選擇取決于應用場景和需要連接的功能。比如之前的可編程邏輯器件XC9572XL使用JTAG引腳(TCK、TDI、TDO、TMS、VREF、GND)用于與器件進行調試和編程通信。更詳細的內容可以閱讀11…

51單片機STC8H8K64U通過RA8889/RA8876如何控制彩屏(SPI源碼下載)

【硬件部份】 一、硬件連接實物: STC8H系列單片機不需要外部晶振和外部復位,在相同的工作頻率下,速度比傳統的8051單片機要快12倍,具有高可靠抗干擾的優秀特性,與瑞佑的RA8889/RA8876控制芯片剛好可以完美搭配用于工…

redis實戰-緩存雪崩問題及解決方案

定義理解 緩存雪崩是指在同一時間段,大量緩存的key同時失效,或者Redis服務宕機,導致大量請求到達數據庫,帶來巨大壓力 和緩存擊穿的區別: 緩存雪崩是由于緩存中的大量數據同時失效或緩存服務器故障引起的&#xff1b…

(漏洞檢查項) | 服務端請求偽造 SSRF

(漏洞檢查項)|服務端請求偽造 SSRF 漏洞場景 服務端請求偽造(SSRF,Server-Side Request Forgery)漏洞發生在應用程序允許攻擊者通過構造惡意請求,利用服務器端發起HTTP請求,并訪問內部資源或進行其他未授權操作。 漏…