mysql執行計劃性能_MySQL SQL性能分析Explain執行計劃

一. 執行計劃返回信息詳解

①. 執行計劃所含字段

d7a3bdd469a6155d8f699a6358aeab58.png

輸出列含義id查詢標識

select_type查詢類型

table查詢涉及的表

partitions匹配到的分區信息

type連接類型

possible_keys可能選擇的索引

key實際使用的索引

key_len實際使用的索引的長度

ref和索引進行比較的列

rows需要被檢索的大致行數

filtered按表條件過濾的行百分比

Extra額外信息

②. id

執行計劃序列號,可出現3種組合方式

第一種:id全部相同,這時會從上至下依次執

3a7d533355999a825192349ebdb78f02.png

第二種:部分id相同,這時會按照id大小從大到小執行;id相同的則會被認定為是一組執行計劃,同一組遵循第一種id全相同的順序執行

83f1b7ba820d129d1b0eefa281638d1b.pngUNION RESULT:UNION的結果

第三種:id全部不相同,這時會按照id大小從大到小執行

e7e0ad31b6417fbbc2cbc28b376080b5.png

SIMPLE:簡單的select查詢,查詢中不包含子查詢或者UNION

PRIMARY:查詢中若包含任何復雜的子部分,最外層查詢則被標記為

SUBQUERY:在SELECT或WHERE列表中包含了子查詢

DERIVED:在FROM列表中包含的子查詢被標記為DERIVED(衍生)MYSQL會遞歸執行這些子查詢,把結果放在臨時表里

UNION:若第二個SELECT出現在UNION之后,則被標記為UNION若UNION包含在FROM子句的子查詢中,外層SELECT將被標記為:DERIVED

UNION RESULT:從UNION表獲取結果的SELECT

④. table

查詢涉及的表

⑤. partitions

由查詢匹配記錄的分區。非分區表為NULL

鏈接類型說明system表只有一行,MyISAM引擎。

const常量連接,表最多只有一行匹配,通用用于主鍵或者唯一索引比較時

eq_ref每次與之前的表合并行都只在該表讀取一行,這是除了system,const之外最好的一種,特點是使用=,而且索引的所有部分都參與join且索引是主鍵或非空唯一鍵的索引

ref如果每次只匹配少數行,那就是比較好的一種,使用=或<=>,可以是左覆蓋索引或非主鍵或非唯一鍵

fulltext全文搜索

ref_or_null與ref類似,但包括NULL

index_merge表示出現了索引合并優化(包括交集,并集以及交集之間的并集),但不包括跨表和全文索引。這個比較復雜,目前的理解是合并單表的范圍索引掃描(如果成本估算比普通的range要更優的話)

unique_subquery在in子查詢中,就是value in (select…)把形如select unique_key_column的子查詢替換。PS:所以不一定in子句中使用子查詢就是低效的!

index_subquery同上,但把形如”select non_unique_key_column“的子查詢替換

range常數值的范圍

index索引樹掃描。a.當查詢是索引覆蓋的,即所有數據均可從索引樹獲取的時候(Extra中有Using Index);b.以索引順序從索引中查找數據行的全表掃描(無 Using Index);c.如果Extra中Using Index與Using Where同時出現的話,則是利用索引查找鍵值的意思;d.如單獨出現,則是用讀索引來代替讀行,但不用于查找

all全表掃描(full table scan)由上到下性能最好到最差

⑦. possible_keys

列出查詢涉及到的字段的索引,但不一定會被使用

⑧. key

實際使用的索引,如果為NULL,則沒有使用索引

⑨. key_len

表示索引中使用的字節數,可通過該列計算查詢中使用的索引的長度,在不損失精確性的情況下,長度越短越好。key_len顯示的值為索引字段的最大可能長度,并非實際使用長度,即key_len是根據表定義計算而得,不是通過表內檢索出的。

⑩. ref

和前方表連接的字段,const代表是常量值連接

?. rows

查詢大致需要涉及讀取的行數,越少越好

?. extra

包含不適合在其他列中顯式但十分重要的額外信息(暫不展開)

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

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

相關文章

mysql定時作業_mysql 讓一個存儲過程定時作業的代碼(轉)

1、在mysql 中建立一個數據庫 test1語句&#xff1a;create database test12、創建表examinfocreate table examinfo(id int auto_increment not null,endtime datetime,primary key(id));3 插入數據&#xff1a;insert into examinfo values(‘1‘,‘2011-4-23 23:26:50‘);4 …

table虛線邊框_web前端工程師7天0基礎到精通(TABLE+CSS制作《互聯世紀網》)

項目七 項目實踐&#xff1a;TABLECSS制作《互聯世紀網》實踐目標1、 熟悉CSS屬性2、 熟練運用CSS屬性控制網頁樣式3、 熟悉網頁制作流程項目簡介&#xff1a;通過上一章節的學習&#xff0c;我們了解了CSS樣式能更加方便、有效地控制網頁結構和布局網頁元素&#xff0c;大大提…

mixamo骨骼_mixamo動作庫的模型和動作綁定控制器的方法-上集

1.首先從網站下載帶調好動作的文件fbx&#xff0c;我們將fbx場景文件轉換成c4d場景文件。沒轉換之前轉換之后選擇場次&#xff0c;在文件菜單里找到當前場次到新文檔&#xff01;2.我們將模型重置為Tpose方便后續操作&#xff0c;沒重置之前模型為k好的動作模式不能使用選中權重…

mysql 101_MySQL 調優/優化的 101 個建議!

原文&#xff1a;http://www.monitis.com/blog/101-tips-to-mysql-tuning-and-optimization/MySQL是一個強大的開源數據庫。隨著MySQL上的應用越來越多&#xff0c;MySQL逐漸遇到了瓶頸。這里提供 101 條優化 MySQL 的建議。有些技巧適合特定的安裝環境&#xff0c;但是思路是相…

數據安全:保護個人隱私和企業機密的關鍵

在當今數字化時代&#xff0c;數據已經成為了一種寶貴的資源。無論是個人還是企業&#xff0c;都離不開數據的支持。然而&#xff0c;隨著數據的不斷增長和廣泛應用&#xff0c;數據安全問題也日益突出。數據泄露、黑客攻擊、網絡詐騙等安全事件層出不窮&#xff0c;給個人和企…

python批量跑plsql_python實現自動化報表(Oracle/plsql/Excel/多線程)

# -*- coding: utf-8 -*-# Create time: 2019-10-16# Update time: 2019-11-28# Version: 1.0# Version: 2.0 增加多線程/出錯自動重新運行模塊# 導入模塊import cx_Oracleimport osimport pandas as pdimport pandas.io.sql as sqlimport timeimport openpyxlimport xlwings a…

mysql 配置郵件_SQL 郵件配置篇

exec sp_configure show advanced options,1RECONFIGURE WITHOVERRIDEgoexec sp_configure database mail xps,1RECONFIGURE WITHOVERRIDEgo--2.創建郵件帳戶信息EXECmsdb..Sysmail_add_account_spACCOUNT_NAME OCTMamiETL,--郵件帳戶名稱EMAIL_ADDRESS OCTMamiETL163.com,--發…

python 抽獎 配音樂_抖音上超好聽的神曲音樂,Python教你一次性下載

不知道什么時候開始&#xff0c;中國出現了南抖音、北快手的互文格局(東市買駿馬&#xff0c;西市買鞍韉…)。剛才提到了&#xff0c;之前比較喜歡刷抖音&#xff0c;對于我這種佛系程序猿&#xff0c;看網上這些整容妹子基本一個樣。喜歡抖音主要是兩個初衷&#xff0c;學做菜…

mysql批量寫入100萬數據_Mysql數據庫實踐操作之————批量插入數據(100萬級別的數據)-阿里云開發者社區...

第一種方法&#xff1a;使用insert into 插入從Redis每次獲取100條數據&#xff0c;根據條件去插入到Mysql數據庫中&#xff1a;條件&#xff1a;如果當前隊列中的值大于1000條&#xff0c;則會自動的條用該方法&#xff0c;該方法每次獲取從隊列的頭部每次獲取100掉數據插入到…

mysql多客戶端數據不同步_一種多終端設備上的數據同步方法

一種多終端設備上的數據同步方法【技術領域】[0001] 屬于移動通信技術領域&#xff0c;特別是涉及基于離網環境下多種移動終端設備之間的數 據同步的方法。 技術背景[0002] 90年代未&#xff0c;數據同步始于有線連接&#xff0c;如MAC機作為數據中心&#xff0c;與終端設備(iP…

oem監控mysql_OEM12c 安裝配置MySQL Plug-in用來監控MySQL

Plug-in--注冊信息[roottest agent]# /oem/emcli setup -urlhttps://omsdb.localdomain:7301/em -usernamesysmanOracle Enterprise Manager 12c 3.Copyright (c) 1996, 2013 Oracle Corporation and/or its affiliates. All rights reserved.The configuration directory &quo…

怎么利用迭代器寫入mysql_range()是什么?為什么不生產迭代器?

本篇文章給大家帶來的內容是關于range()是什么&#xff1f;為什么不生產迭代器&#xff1f;有一定的參考價值&#xff0c;有需要的朋友可以參考一下&#xff0c;希望對你有所幫助。迭代器是 23 種設計模式中最常用的一種(之一)&#xff0c;在 Python 中隨處可見它的身影&#x…

java 流式_Java開發筆記(七十二)Java8新增的流式處理

通過前面幾篇文章的學習&#xff0c;大家應能掌握幾種容器類型的常見用法&#xff0c;對于簡單的增刪改和遍歷操作&#xff0c;各容器實例都提供了相應的處理方法&#xff0c;對于實際開發中頻繁使用的清單List&#xff0c;還能利用Arrays工具的asList方法給清單對象做初始化賦…

java保留二位小數_java使double保留兩位小數的多方法 java保留兩位小數

復制代碼代碼如下:mport java.text.DecimalFormat;DecimalFormat df new DecimalFormat("######0.00");double d1 3.23456double d2 0.0;double d3 2.0;df.format(d1);df.format(d2);df.format(d3);3個結果分別為:復制代碼代碼如下:3.230.002.00java保留兩位…

linux java jar打包_【Java】Java程序打包成jar包在Linux上運行

當需要把在Windows上開發的Java程序用在Linux上運行時&#xff0c;就需要吧該Java程序打包成jar包上傳到Linux上去運行。1.Java程序用MyEclipse打包成可運行的jar包(1)在MyEclipse中選中需要打包的項目&#xff0c;點擊右鍵&#xff0c;選擇&#xff1a;Export... 如下圖所示&a…

java匿名對象 回收_Java 匿名對象

我們知道一般實例化一個對象的格式&#xff0c;如下&#xff1a;Car car new Car();其中&#xff0c;變量名 car 就是 new Car() 這個對象的名字。car 是引用類型的變量&#xff0c;它的值存放的是對象的引用(或地址)&#xff0c;通過 car 這個變量我們就可以間接使用對象。那…

java int 正則表達式_java正則表達式

Java正則表達式正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式并不僅限于某一種語言&#xff0c;但是在每種語言中有細微的差別。Java正則表達式和Perl的是最為相似的。java.util.regex包主要包括以下三個類&#xff1a;Pattern類&#xf…

mysql.h 動態編譯命令_Linux環境編譯動態庫和靜態庫總結

對Linux環境動態庫和靜態庫的一些基礎知識做一些總結&#xff0c;首先總結靜態庫的編譯步驟。1 先基于.cpp或者.c文件生成對應的.o文件2將幾個.o文件 使用ar -cr命令 生成libname.a文件libname.a 為靜態庫&#xff0c; name 為靜態庫的名字&#xff0c;可以根據模塊功能命名。舉…

netbeans java中文_Ubuntu?下jdk安裝中文字體?java?解決netbeans?方塊字?中文亂碼

安裝環境Ubuntu 11.04、javajdk1.6.0_27首先找到你需要的字體&#xff0c;比如我就是從windows系統里拷出來的&#xff0c;C:\WINDOWS\Fonts這里有很多字體&#xff0c;我只拷貝了simsun.ttc(中文 宋體&#xff0c;從xp系統拷貝的&#xff0c;win7 下沒有這個文件)安裝java后&a…

python 教學_「Python基礎」一次就裝好Python手把手裝到好

一、前言&#xff1a;安裝Python有兩個主要的方法&#xff0c;視情況而定我兩個都會用&#xff1a;(1)安裝 AnacondaAnaconda像一個懶人包&#xff0c;安裝它等于把Python安裝好連同把Python大部分的套件也下載好了&#xff0c;不只如此連通較常用的Python IDE一同幫你裝到好。…