中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql的查詢流程是怎樣的

發布時間:2021-06-26 14:20:37 來源:億速云 閱讀:255 作者:chen 欄目:大數據

本篇內容介紹了“Mysql的查詢流程是怎樣的”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Mysql查詢流程圖

Mysql的查詢流程是怎樣的

Mysql查詢流程

處理連接

Mysql有三種連接方式,包括:

  • TCP/IP協議,遠程連接使用,常規可采用ip端口建立連接。

  • 命名管道或共享內存,windows下可以采用命名管道或共享內存進行進程間通信方式,但要求服務器端與連接客服端在同一臺機器。

  • Unix域套接字,類Unix操作系統可以使用Unix域套接字文件來進行進程間通信。

Mysql會限制同時連接服務器的數量,系統變量(后面我們在解釋什么是系統變量、還有狀態變量):max_connections表示的是最大連接數(默認151)。

查詢緩存

Mysql8.0之前會對查詢結果建立緩存,第二次使用同樣的語句查詢時會先看緩存里面有沒有,如果有直接返回查詢結果。

注:從MySQL 5.7.20開始,不推薦使用查詢緩存,并在MySQL 8.0中刪除(個人覺得,項目小并發量不是很高的可以用,但是并發量不高,相對來說緩不緩存其實影響也不大。但是項目大,數據變更頻繁,緩存的開銷就會很大,所以無論項目大小,保持關閉狀態都是可以的)

緩存的命中條件

  • 前后查詢語句必須一樣,兩個查詢請求在任何字符上的不同(例如:空格、注釋、大小寫),都會導致緩存不命中。

  • 如果查詢請求中包含某些系統函數、用戶自定義變量和函數、一些系統表,如 mysql 、information_schema、 performance_schema 數據庫中的表,那這個請求就不會被緩存。

緩存的刪除條件

MySQL的緩存系統會監測涉及到的每張表,只要該表的結構或者數據被修改,如對該表使用了INSERT、 UPDATE、DELETE、TRUNCATE TABLE、ALTER TABLE、DROP TABLE或 DROP DATABASE語句,那使用該表的所有高速緩存查詢都將變為無效并從高速緩存中刪除。

語法解析

這一階段主要是針對未命中緩存的查詢語句進行語法檢查,并且將查詢語句中使用的表、各種查詢條件都提取出來放到MySQL服務器內部使用的一些數據結構上來。

查詢優化

mysql會針對我們書寫的查詢語句進行優化,生成一個執行計劃(可以在查詢語句前面加explain查看執行計劃,具體執行計劃怎么看,后面有空再總結吧),這個執行計劃可以看到將使用哪些索引進行查詢,表之間優化后的連接順序等東西。

存儲引擎執行

MySQL從2007年開始提供了插件式的存儲引擎API,一般來說,連接管理、查詢緩存、語法解析、查詢優化這些并不涉及真實數據存儲的功能我們稱為MySQL server的功能,但真正執行查詢的是存儲引擎的功能,存儲引擎真正執行數據存取操作,存儲引擎有很多,都是基于mysql的API規范進行開發的。包括下列:

Mysql的查詢流程是怎樣的

其中,InnoDB和MyISAM是我們最常用的,Mysql的默認存儲引擎是InnoDB。

“Mysql的查詢流程是怎樣的”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

太谷县| 无极县| 沭阳县| 崇文区| 凤城市| 太和县| 铁岭县| 缙云县| 鄂托克前旗| 沈阳市| 施甸县| 孝昌县| 贵德县| 遂昌县| 石首市| 眉山市| 泾川县| 股票| 石景山区| 莆田市| 浙江省| 高密市| 都匀市| 宜章县| 邹平县| 玉田县| 泸西县| 沁阳市| 辽中县| 平利县| 无棣县| 西安市| 沅江市| 宝坻区| 抚州市| 柯坪县| 巴彦县| 大新县| 乌苏市| 安徽省| 丹巴县|