MySQL——一條SQL語法執行過程和順序

      存儲引擎:直接與磁盤操作,負責對數據的直接所有操作。存儲引擎主流有InnoDB,MyISAM,Memory。

       數據庫連接爲長連接。長連接如果長時間未使用會自動斷開,wait_timeout是控制長連接空閒時長,默認爲8小時。可以使用show processlist查看被數據庫長連接的情況。

      數據庫使用長連接後內存消耗會特別快,所以需要定時斷開長連接,以方便釋放內存。或者如果執行一次比較大的sql語句後,就自動斷開再連接(命令mysql_reset_connection)。

        數據庫避免使用查詢緩存,mysql8.0後的版本去掉了查詢緩存這個東西。查詢緩存把sql語句作爲key值,將結果集作爲value,以key-value的形式存放在緩存中。如果key匹配到(也就是命中),就會直接把結果集取出來。查詢緩存之所以是的有效的,是因爲如果數據庫表A中執行了一次維護操作(update/delete/insert),那麼表A的命中緩存會全部失效

       一條查詢語句,執行順序如下圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章