溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

MySQL 5.7中新增sys schema后,會(huì)有什么變化

發(fā)布時(shí)間:2020-08-11 23:03:49 來(lái)源:ITPUB博客 閱讀:219 作者:aixuexiwoying 欄目:MySQL數(shù)據(jù)庫(kù)

MySQL 5.7中引入了一個(gè)新的sys schema,sys是一個(gè)MySQL自帶的系統(tǒng)庫(kù),在安裝MySQL 5.7以后的版本,使用mysqld進(jìn)行初始化時(shí),會(huì)自動(dòng)創(chuàng)建sys庫(kù),
sys庫(kù)里面的表、視圖、函數(shù)、存儲(chǔ)過(guò)程可以使我們更方便、快捷的了解到MySQL的一些信息,比如哪些語(yǔ)句使用了臨時(shí)表、哪個(gè)SQL沒(méi)有使用索引、哪個(gè)
schema中有冗余索引、查找使用全表掃描的SQL、查找用戶(hù)占用的IO等.
sys庫(kù)里這些視圖中的數(shù)據(jù),都是從information_schema里面獲得的。

截止到現(xiàn)在(MySQL 5.7.12),sys中有1張表、52個(gè)視圖(我們可以從這些視圖中查找到上面說(shuō)到的那些信息,預(yù)計(jì)再以后的版本中,sys庫(kù)中的視圖數(shù)量還
會(huì)再增加),這些信息都可以通過(guò)show tables;查看
或者在information_schema中查看:

select table_name,table_type,engine from

information_schema.tables where

table_schema='sys' order by table_name;

當(dāng)你使用上面的方法查看時(shí),你會(huì)發(fā)現(xiàn)一個(gè)很有趣的現(xiàn)象,比如咱們看下show tables;的一部分輸出:


MySQL 5.7中新增sys schema后,會(huì)有什么變化


MySQL 5.7中新增sys schema后,會(huì)有什么變化

上面,我們可以看出,這些視圖有2中表現(xiàn)形式,一種是host_summary,另一種是加上x(chóng)$字樣的,x$host_summary,這2種視圖里面的信息是一樣的,

只是表現(xiàn)形式不一樣,前一種是便于我們閱讀,格式化了時(shí)間和字節(jié)的單位,后一種形式是指以”x$”開(kāi)頭的視圖名稱(chēng),是為了便于一些工具的數(shù)據(jù)處理。


MySQL 5.7中新增sys schema后,會(huì)有什么變化

我們通過(guò)show create table命令分別查看上面2個(gè)視圖的創(chuàng)建語(yǔ)句,可以發(fā)現(xiàn),他們的創(chuàng)建是一樣的,只是在定義io_latency列的時(shí)候,在

host_summary_by_file_io中,使用了一個(gè)函數(shù)sys.format_time來(lái)格式化時(shí)間格式:

`format_time`(sum(`performance_schema`.`events_

waits_summary_by_host_by_event_name`.`SUM_TI

MER_WAIT`)) AS `io_latency`



MySQL 5.7中新增sys schema后,會(huì)有什么變化

而類(lèi)似于sys.format_time這樣的函數(shù),也是伴隨sys庫(kù)一起創(chuàng)建的,我們可以使用以下命令查看:

select

routine_schema,routine_name,routine_type

from information_schema.routines where

routine_type='FUNCTION';

我們也可以使用show function status where db='sys'\G來(lái)查看這些函數(shù)是怎么創(chuàng)建的,具體的作用,怎么使用等。

具體這些視圖都承載這哪些信息,我們可以從官方手冊(cè)獲得幫助,這個(gè)值得我們花費(fèi)一些時(shí)間來(lái)研究,比如我們可以在schema_redundant_indexes

中查看數(shù)據(jù)庫(kù)中冗余的索引,在statements_with_full_table_scans中查看使用全表掃描的
SQL:
http://dev.mysql.com/doc/refman/5.7/en/sys-schema-views.html

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI