存儲引擎:直接與磁盤操作,負責對數據的直接所有操作。存儲引擎主流有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的命中緩存會全部失效。
一條查詢語句,執行順序如下圖: