information_schema
此資料庫是MySQL資料庫自帶的,主要儲存資料庫的後設資料,儲存了關於MySQL伺服器維護的所有其他資料庫的資訊,如資料庫名、資料庫表、表列的資料型別及訪問許可權等。
這個庫在很多情況下,可以幫助我們做一些自動化處理的工作,比如巡檢程式找到所有的MyISAM表,或者是找到所有的自增列快達到上限的表。很多工具的資訊來源,比如Percona Toolkit,它在查一些資訊的時候也是通過在這個庫上執行SQL語句來做的。
這個庫有其明顯的缺點:它在每次查詢的時候,都會現場統計相應的資訊,這需要將相應的資訊載入到記憶體中,做成記憶體表,然後將資訊返回給客戶端,但如果比較多的話,這些語句的執行就會很慢,造成一些不可預知的風險,需要謹慎處理。
performance_schema
此庫是MySQL 5.5 新增的,主要是關注效能的,主要用於收集資料庫伺服器效能引數指標的。主要提供以下功能:
1.提供程式等待的詳細資訊,包括鎖、互斥變數、檔案資訊等。
2.儲存歷史事件彙總資訊,為判斷MySQL伺服器效能提供詳細的依據。
3.新增或刪除監控事件點都非常容易,並可以隨意改變MySQL伺服器的監控週期。
Sys
此庫是MySQL 5.7新增的,這個庫類似Oracle中的動態檢視,通過這些檢視可以快速地瞭解系統的後設資料,並非常方便地讓DBA發現資料庫的很多資訊,在解決效能瓶頸、自動化運維等方面可以提供很大的幫助。
這個庫是通過檢視的形式把information_schema和performance_schema結合起來,查詢出讓人更容易理解的結果。因sys依賴information_schema,所以上文提到的缺點不足,sys同樣存在。
—–部分內容參考梳理於網路知識,在此感謝!