mysql進階-sql調優

概述

優化索引

在MySQL初階的課程中已經介紹了索引,我們知道InnoDB存儲引擎使?B+樹作為索引默認的數據結構來組織數據,為頻繁查詢的列建?索引可以有效的提升查詢效率,那么如何利?索引編寫出?效的SQL查詢語句?以及如何分析某個查詢是否?到了索引?當前的索引還有沒有優化的空間?下?我們來討論關于索引和優化相關的問題。

關于mysql索引的理解,除了自動創建的主鍵索引是將所有的字段都放在索引樹當中,其他的索引都只有索引字段和主鍵,那么其他的索引檢索到要查詢的數據后還是需要根據存儲的主鍵id去主鍵索引去查找全部的數據的

使用主鍵查詢

使用非索引查詢

壓測工具

執行計劃EXPLAIN

執行計劃并不會真的去執行sql語句。

執行計劃字段說明

id列

select_type列

table列

partitions列

type列

possible_keys列

key列

key_len列

ref列

rows列和filtered列

extra列

type列詳解

system

const

eq_ref

在多表鏈接的場景,兩個唯一值一一對應相互關聯的場景。

ref

fulltext

ref_or_null

index_merge

unique_subquery和index_subquery

range

index

all

只有單個查詢當中沒有使用的列才算是全表掃描,先使用索引查詢后再次查詢的不能算。

extra列詳解

USing Temporary

Using filesort

當內存不足的時候就會申請臨時文件,這是比內存更嚴重的情況,io效率極低。

使用了索引來進行排序就不會發生這種情況了。

usingWhere

如果通過了索引樹的話,那進行的就不是全表掃描,而掃描的是索引樹。

using index

表示出現了索引覆蓋,效率極高。

索引覆蓋

回表查詢

優化Select

where字句優化

高效查詢示例

范圍優化

優化器執行過程

多部索引范圍訪問

索引下推

外連接優化

is null優化

查詢b列有索引走了索引,查詢c列沒有索引就全表掃描,也有可能走了索引還是全表掃描

order by優化

group by優化

索引失效

沒有遵守最左原則

where中有or且其中一個條件沒有索引

因為or條件除非第一個條件滿足了,不然基本上是要找的,與其走一次索引加一次全表掃描,不如只走一次全表掃描。

復合索引中第?個使?范圍查詢的條件或不以%開頭的模糊查詢之后的列不使?索引

Like 查詢以 % 開頭

隱式轉換,?如字符串沒有加引號

Where ?句中有表達式或函數

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

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

相關文章

海量數據處理問題詳解

1.從a,b兩個文件各存放50億個url(每個url大小為64B),如何在內存為4G中查找a,b中相同的url 計算各文件存放大小:50億*64B 大約為320G,而內存只有4G,顯然存放不下,此時我們…

AI 記憶管理系統:工程實現設計方案

本文檔為《從“健忘”到“懂我”:構建新一代AI記憶系統》中所述理念的詳細工程實現方案。它將聚焦于技術選型、模塊設計、數據流轉和核心算法,為開發團隊提供清晰的落地指引。 1. 系統架構與技術選型 為實現分層記憶與讀寫分離的設計理念,我們…

Linux驅動學習day26天(RS485)

一、原理通過芯片將232信號轉換成485信號,485表示0和1的方法:Va - Vb 的電壓差在2~6V時表示1,Va - Vb 的電壓差在-2~-6V時表示0。這樣傳輸不容易受到干擾,并且傳輸距離長。我們需要做的事情就是發送:使能DE(driver ena…

從零構建TransformerP1-了解設計

歡迎來到啾啾的博客🐱。 記錄學習點滴。分享工作思考和實用技巧,偶爾也分享一些雜談💬。 有很多很多不足的地方,歡迎評論交流,感謝您的閱讀和評論😄。 目錄引言1 概念回顧1.1 序列任務1.1.1 將序列變成模型…

JVM 終止機制詳解:用戶線程與守護線程

用戶線程未執行完是否會阻止 JVM 終止?答案是:取決于線程類型。讓我詳細解釋: 核心規則 #mermaid-svg-bg5xpyMAeRWNGGk2 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-bg5xpyMAe…

Linux Vim 常用快捷鍵

Vim中最常用的快捷鍵,熟練掌握它們可以大大提高編輯效率。移動光標h- 左移j- 下移k- 上移l- 右移w- 移動到下一個單詞開頭b- 移動到上一個單詞開頭e- 移動到單詞末尾0- 移動到行首$- 移動到行尾gg- 移動到文件開頭G- 移動到文件末尾:n- 跳轉到第n行插入模式i- 在光標…

【Bellman負環】Cycle Finding

題目翻譯給定一個有向圖,你的任務是判斷它是否包含負環,并給出這樣一個環的示例。輸入 第一行輸入兩個整數 n 和 m:分別表示節點數和邊數。節點編號為 1, 2, ..., n。 接下來 m 行描述邊,每行有三個整數 a, b, c:表示存…

數據結構(六):樹與二叉樹

一、樹的基本概念樹的定義樹(Tree)是由 n(n ≥ 0)個節點組成的有限集合,當 n 0 時稱為空樹。非空樹中:有且僅有一個根節點(Root);其余節點可以劃分為若干個互不相交的子…

《Linux運維總結:Shell 腳本日志輸出工具》

總結:整理不易,如果對你有幫助,可否點贊關注一下? 更多詳細內容請參考:Linux運維實戰總結 一、Shell 腳本日志輸出工具 1、提供的 logger() 函數是一個非常實用的 Shell 腳本日志輸出工具,它支持帶時間戳和…

select ... for update阻塞

總結阻塞規則:當前事務持有的鎖 (來自 SELECT ... FOR UPDATE)其他事務嘗試的操作是否會被阻塞?原因排他鎖 (X Lock) 在行 R 上SELECT ... FROM ... (普通查詢)否讀快照 (MVCC),不需要鎖排他鎖 (X Lock) 在行 R 上SELECT ... FROM ... FOR UP…

LangChain4j終極指南:Spring Boot構建企業級Agent框架

LangChain4j Spring Boot 構建企業級 Agent 框架深度指南(3000字終極版)一、架構設計:面向未來的企業級智能體系統1.1 分層架構設計1.2 核心組件職責1.3 企業級特性設計二、核心模塊深度實現2.1 智能體協作引擎(LangGraph4j高級應…

前端基礎之《Vue(29)—Vue3 路由V4》

一、安裝1、命令cnpm install vue-router42、配置映射為src路徑(1)安裝對應配置cnpm install types/node(2)配置vite.config.tsimport { defineConfig } from vite import vue from vitejs/plugin-vue import * as path from &quo…

9.2 通過DuEDrawingControl把eDrawing嵌入到C#中顯示

本文介紹如何通過DuEDrawingControl控件在C#的WPF中進行3D的顯示。 DuEDrawingControl在實際應用中可以應用于以下場景: 1.CAD文件預覽:在Winform或WPF應用程序中,用戶可以預覽裝配文件、工程圖文件等,方便進行設計和審核。 2.打印管理:控件支持打印文件的管理,用…

《Vuejs設計與實現》第 13 章(異步組件和函數式組件

目錄 13.1 異步組件的問題與解決方法 13.2 異步組件的實現原理 3.2.1 封裝 defineAsyncComponent 函數 13.2.2 超時與 Error 組件 13.2.3 延遲與 Loading 組件 13.2.4 重試機制 13.3 函數式組件 13.4 總結 在第12章,我們深入探討了組件的基本含義和實現方式…

Python的七大框架對比分析

談到“Python 七大框架”時,通常指 Django、Flask、FastAPI、Tornado、Sanic、AIOHTTP 和 Pyramid 這七位“常駐嘉賓”。它們各有氣質,適合的場景也截然不同。1. DjangoDjango 像一輛全副武裝的重型越野:出廠就配好 ORM、后臺管理、權限、緩存…

Redis中String數據結構為什么以長度44為embstr和raw實現的分界線?

? 一道常見Redis面試題。 ? 在Redis的String數據結構中,當字符串的實際長度小于44且包含非整數字符時底層編碼方式為embstr。當超過44時使用raw底層編碼方式。 ? 那么為什么要以字符串的長度44為分界線呢? 信息一 ? 首先要分析embst…

告別人工巡查,校園空調管理邁入智能物聯高效時代

在“雙碳”戰略深入推進和智慧校園建設加速落地的背景下,學校空調的用電管理已經不再是“開與關”的簡單問題,而是涵蓋了能效優化、安全保障、智慧化管理的綜合課題。藍奧聲科技憑借LPIOT低功耗物聯網、ECWAN邊緣協同網絡等優勢技術,打造出面…

Access開發右下角浮窗提醒

Hi,大家好呀!感覺又有很長一段時間沒有給大家更新內容了,最近一直在忙,給大家承諾的框架、視頻教程、直播等等感覺又要跳票了,嘿嘿,但大家還是不要急,莫催我,我會慢慢都更新出來的&a…

AI自進化,GPU性能翻三倍——CUDA-L1開啟自動優化新范式

最近看到一篇讓我挺震撼的文章,來自 DeepReinforce 團隊發布的一個新框架——CUDA-L1。說實話,剛看到標題說“AI 讓 GPU 性能提升 3 倍以上”,我心里是有點懷疑的。畢竟我們搞科研的都知道,這種宣傳語很多時候水分不小。但當我靜下…

深入理解 Java AWT Container:原理、實戰與性能優化

以 Container 為核心梳理 AWT 容器體系與事件模型,提供可運行的純 AWT 示例(含 Panel、Frame、Dialog、ScrollPane 正確用法),并給出常見問題與性能優化建議。 Java AWT, Container, 容器, 布局管理器, 事件驅動, ScrollPane, 性…