最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中的系統(tǒng)庫(kù)(sys系統(tǒng)庫(kù)、information_schema)調(diào)優(yōu)方法

 更新時(shí)間:2025年08月18日 11:58:24   作者:道友老李  
MySQL性能調(diào)優(yōu)涉及數(shù)據(jù)庫(kù)設(shè)計(jì)、查詢優(yōu)化、配置及硬件調(diào)整,MySQL性能調(diào)優(yōu)是一個(gè)復(fù)雜且多維度的過(guò)程,下面從數(shù)據(jù)庫(kù)設(shè)計(jì)、查詢優(yōu)化、配置參數(shù)調(diào)整、硬件優(yōu)化幾個(gè)方面為你介紹相關(guān)的調(diào)優(yōu)方法,感興趣的朋友跟隨小編一起看看吧

MySQL性能調(diào)優(yōu)

MySQL 性能調(diào)優(yōu)是一個(gè)復(fù)雜且多維度的過(guò)程,下面從數(shù)據(jù)庫(kù)設(shè)計(jì)、查詢優(yōu)化、配置參數(shù)調(diào)整、硬件優(yōu)化幾個(gè)方面為你介紹相關(guān)的調(diào)優(yōu)方法。

數(shù)據(jù)庫(kù)設(shè)計(jì)優(yōu)化

  • 合理設(shè)計(jì)表結(jié)構(gòu):確保表結(jié)構(gòu)遵循數(shù)據(jù)庫(kù)設(shè)計(jì)范式,減少數(shù)據(jù)冗余,同時(shí)要根據(jù)實(shí)際業(yè)務(wù)需求靈活調(diào)整,避免過(guò)度范式化導(dǎo)致的查詢復(fù)雜度過(guò)高。
  • 選擇合適的數(shù)據(jù)類型:使用合適的數(shù)據(jù)類型可以減少存儲(chǔ)空間,提高查詢性能。例如,對(duì)于固定長(zhǎng)度的字符串使用CHAR,對(duì)于可變長(zhǎng)度的字符串使用VARCHAR;對(duì)于整數(shù)類型,根據(jù)取值范圍選擇合適的類型,如TINYINTSMALLINT等。
  • 建立適當(dāng)?shù)乃饕?/strong>:索引可以加快數(shù)據(jù)的查找速度,但過(guò)多的索引會(huì)增加寫(xiě)操作的開(kāi)銷(xiāo),因此需要根據(jù)查詢需求建立適當(dāng)?shù)乃饕?。例如,?duì)于經(jīng)常用于WHERE子句、JOIN條件和ORDER BY子句的列,可以考慮創(chuàng)建索引。

查詢優(yōu)化

  • 避免全表掃描:盡量使用索引來(lái)避免全表掃描,例如在WHERE子句中使用索引列進(jìn)行過(guò)濾。
  • 優(yōu)化子查詢:子查詢可能會(huì)導(dǎo)致性能問(wèn)題,可以考慮使用JOIN來(lái)替代子查詢。
  • 減少不必要的列:在查詢時(shí)只選擇需要的列,避免使用SELECT *。

配置參數(shù)調(diào)整

  • 調(diào)整內(nèi)存分配:根據(jù)服務(wù)器的硬件資源和業(yè)務(wù)需求,調(diào)整innodb_buffer_pool_sizekey_buffer_size等參數(shù),以提高緩存命中率。
  • 調(diào)整日志參數(shù):根據(jù)業(yè)務(wù)需求調(diào)整log_bin、innodb_log_file_size等參數(shù),以平衡數(shù)據(jù)安全性和性能。

硬件優(yōu)化

  • 使用高速存儲(chǔ)設(shè)備:如 SSD 可以顯著提高磁盤(pán) I/O 性能。
  • 增加內(nèi)存:足夠的內(nèi)存可以減少磁盤(pán) I/O,提高查詢性能。

MySQL中的系統(tǒng)庫(kù)

1.3.sys系統(tǒng)庫(kù)

1.3.1.sys使用須知

sys系統(tǒng)庫(kù)支持MySQL 5.6或更高版本,不支持MySQL 5.5.x及以下版本。

sys系統(tǒng)庫(kù)通常都是提供給專業(yè)的DBA人員排查一些特定問(wèn)題使用的,其下所涉及的各項(xiàng)查詢或多或少都會(huì)對(duì)性能有一定的影響。

因?yàn)閟ys系統(tǒng)庫(kù)提供了一些代替直接訪問(wèn)performance_schema的視圖,所以必須啟用performance_schema(將performance_schema系統(tǒng)參數(shù)設(shè)置為ON),sys系統(tǒng)庫(kù)的大部分功能才能正常使用。

同時(shí)要完全訪問(wèn)sys系統(tǒng)庫(kù),用戶必須具有以下數(shù)據(jù)庫(kù)的管理員權(quán)限。

如果要充分使用sys系統(tǒng)庫(kù)的功能,則必須啟用某些performance_schema的功能。比如:

啟用所有的wait instruments:

CALL sys.ps_setup_enable_instrument('wait');

啟用所有事件類型的current表:

CALL sys.ps_setup_enable_consumer('current');

注意: performance_schema的默認(rèn)配置就可以滿足sys系統(tǒng)庫(kù)的大部分?jǐn)?shù)據(jù)收集功能。啟用所有需要功能會(huì)對(duì)性能產(chǎn)生一定的影響,因此最好僅啟用所需的配置。

1.3.2.sys系統(tǒng)庫(kù)使用

如果使用了USE語(yǔ)句切換默認(rèn)數(shù)據(jù)庫(kù),那么就可以直接使用sys系統(tǒng)庫(kù)下的視圖進(jìn)行查詢,就像查詢某個(gè)庫(kù)下的表一樣操作。也可以使用db_name.view_name、db_name.procedure_name、db_name.func_name等方式,在不指定默認(rèn)數(shù)據(jù)庫(kù)的情況下訪問(wèn)sys 系統(tǒng)庫(kù)中的對(duì)象(這叫作名稱限定對(duì)象引用)。

在sys系統(tǒng)庫(kù)下包含很多視圖,它們以各種方式對(duì)performance_schema表進(jìn)行聚合計(jì)算展示。這些視圖大部分是成對(duì)出現(xiàn)的,兩個(gè)視圖名稱相同,但有一個(gè)視圖是帶 x $前綴的.$

host_summary_by_file_io和 x$host_summary_by_file_io

代表按照主機(jī)進(jìn)行匯總統(tǒng)計(jì)的文件I/O性能數(shù)據(jù),兩個(gè)視圖訪問(wèn)的數(shù)據(jù)源是相同的,但是在創(chuàng)建視圖的語(yǔ)句中,不帶x$前綴的視圖顯示的是相關(guān)數(shù)值經(jīng)過(guò)單位換算后的數(shù)據(jù)(單位是毫秒、秒、分鐘、小時(shí)、天等),帶 x$ 前綴的視圖顯示的是原始的數(shù)據(jù)(單位是皮秒)。

1.3.3.查看慢SQL語(yǔ)句慢在哪里

如果我們頻繁地在慢查詢?nèi)罩局邪l(fā)現(xiàn)某個(gè)語(yǔ)句執(zhí)行緩慢,且在表結(jié)構(gòu)、索引結(jié)構(gòu)、統(tǒng)計(jì)信息中都無(wú)法找出原因時(shí),則可以利用sys系統(tǒng)庫(kù)中的撒手锏:sys.session視圖結(jié)合performance_schema的等待事件來(lái)找出癥結(jié)所在。那么session視圖有什么用呢?使用它可以查看當(dāng)前用戶會(huì)話的進(jìn)程列表信息,看看當(dāng)前進(jìn)程到底再干什么,注意,這個(gè)視圖在MySQL 5.7.9中才出現(xiàn)。

首先需要啟用與等待事件相關(guān)功能:

call sys.ps_setup_enable_instrument('wait');
call sys.ps_setup_enable_consumer('wait');

然后模擬一下:

一個(gè)session中執(zhí)行

select sleep(30);

另外一個(gè)session中在sys庫(kù)中查詢:

select * from session where command='query' and conn_id !=connection_id()\G

查詢表的增、刪、改、查數(shù)據(jù)量和I/O耗時(shí)統(tǒng)計(jì)

select * from schema_table_statistics_with_buffer\G

1.3.4.小結(jié)

除此之外,通過(guò)sys還可以查詢查看InnoDB緩沖池中的熱點(diǎn)數(shù)據(jù)、查看是否有事務(wù)鎖等待、查看未使用的,冗余索引、查看哪些語(yǔ)句使用了全表掃描等等。

具體可以參考官網(wǎng):MySQL :: MySQL 5.7 Reference Manual :: 26 MySQL sys Schema

1.4.information_schema

1.4.1.什么是information_schema

information_schema提供了對(duì)數(shù)據(jù)庫(kù)元數(shù)據(jù)、統(tǒng)計(jì)信息以及有關(guān)MySQL Server信息的訪問(wèn)(例如:數(shù)據(jù)庫(kù)名或表名、字段的數(shù)據(jù)類型和訪問(wèn)權(quán)限等)。該庫(kù)中保存的信息也可以稱為MySQL的數(shù)據(jù)字典或系統(tǒng)目錄。

在每個(gè)MySQL 實(shí)例中都有一個(gè)獨(dú)立的information_schema,用來(lái)存儲(chǔ)MySQL實(shí)例中所有其他數(shù)據(jù)庫(kù)的基本信息。information_schema庫(kù)下包含多個(gè)只讀表(非持久表),所以在磁盤(pán)中的數(shù)據(jù)目錄下沒(méi)有對(duì)應(yīng)的關(guān)聯(lián)文件,且不能對(duì)這些表設(shè)置觸發(fā)器。雖然在查詢時(shí)可以使用USE語(yǔ)句將默認(rèn)數(shù)據(jù)庫(kù)設(shè)置為information_schema,但該庫(kù)下的所有表是只讀的,不能執(zhí)行INSERT、UPDATE、DELETE等數(shù)據(jù)變更操作。

針對(duì)information_schema下的表的查詢操作可以替代一些SHOW查詢語(yǔ)句(例如:SHOW DATABASES、SHOW TABLES等)。

注意:根據(jù)MySQL版本的不同,表的個(gè)數(shù)和存放是有所不同的。在MySQL 5.6版本中總共有59個(gè)表,在MySQL 5.7版本中,該schema下總共有61個(gè)表,

MySQL 8.0版本中,該schema下的數(shù)據(jù)字典表(包含部分原Memory引擎臨時(shí)表)都遷移到了mysql schema下,且在mysql schema下這些數(shù)據(jù)字典表被隱藏,無(wú)法直接訪問(wèn),需要通過(guò)information_schema下的同名表進(jìn)行訪問(wèn)。

information_schema下的所有表使用的都是Memory和InnoDB存儲(chǔ)引擎,且都是臨時(shí)表,不是持久表,在數(shù)據(jù)庫(kù)重啟之后這些數(shù)據(jù)會(huì)丟失。在MySQL 的4個(gè)系統(tǒng)庫(kù)中,information_schema也是唯一一個(gè)在文件系統(tǒng)上沒(méi)有對(duì)應(yīng)庫(kù)表的目錄和文件的系統(tǒng)庫(kù)。

1.4.2.information_schema表分類

Server層的統(tǒng)計(jì)信息字典表

(1)COLUMNS

提供查詢表中的列(字段)信息。

(2)KEY_COLUMN_USAGE

提供查詢哪些索引列存在約束條件。

該表中的信息包含主鍵、唯一索引、外鍵等約束信息,例如:所在的庫(kù)表列名、引用的庫(kù)表列名等。該表中的信息與TABLE_CONSTRAINTS表中記錄的信息有些類似,但TABLE_CONSTRAINTS表中沒(méi)有記錄約束引用的庫(kù)表列信息,而KEY_COLUMN_USAGE表中卻記錄了TABLE_CONSTRAINTS表中所沒(méi)有的約束類型。

(3)REFERENTIAL_CONSTRAINTS

提供查詢關(guān)于外鍵約束的一些信息。

(4)STATISTICS

提供查詢關(guān)于索引的一些統(tǒng)計(jì)信息,一個(gè)索引對(duì)應(yīng)一行記錄。

(5)TABLE_CONSTRAINTS

提供查詢與表相關(guān)的約束信息。

(6)FILES

提供查詢與MySQL的數(shù)據(jù)表空間文件相關(guān)的信息。

(7)ENGINES

提供查詢MySQL Server支持的引擎相關(guān)信息。

(8)TABLESPACES

提供查詢關(guān)于活躍表空間的相關(guān)信息(主要記錄的是NDB存儲(chǔ)引擎的表空間信息)。

注意:該表不提供有關(guān)InnoDB存儲(chǔ)引擎的表空間信息。對(duì)于InnoDB表空間的元數(shù)據(jù)信息,請(qǐng)查詢INNODB_SYS_TABLESPACES表和INNODB_SYS_DATAFILES表。另外,從MySQL 5.7.8開(kāi)始,INFORMATION_SCHEMA.FILES表也提供查詢InnoDB表空間的元數(shù)據(jù)信息。

(9)SCHEMATA

提供查詢MySQL Server中的數(shù)據(jù)庫(kù)列表信息,一個(gè)schema就代表一個(gè)數(shù)據(jù)庫(kù)。

Server層的表級(jí)別對(duì)象字典表

(1)VIEWS

提供查詢數(shù)據(jù)庫(kù)中的視圖相關(guān)信息。查詢?cè)摫淼馁~戶需要擁有show view權(quán)限。

(2)TRIGGERS

提供查詢關(guān)于某個(gè)數(shù)據(jù)庫(kù)下的觸發(fā)器相關(guān)信息。

(3)TABLES

提供查詢與數(shù)據(jù)庫(kù)內(nèi)的表相關(guān)的基本信息。

(4)ROUTINES

提供查詢關(guān)于存儲(chǔ)過(guò)程和存儲(chǔ)函數(shù)的信息(不包括用戶自定義函數(shù))。該表中的信息與mysql.proc中記錄的信息相對(duì)應(yīng)(如果該表中有值的話)。

(5)PARTITIONS

提供查詢關(guān)于分區(qū)表的信息。

(6)EVENTS

提供查詢與計(jì)劃任務(wù)事件相關(guān)的信息。

(7)PARAMETERS

提供有關(guān)存儲(chǔ)過(guò)程和函數(shù)的參數(shù)信息,以及有關(guān)存儲(chǔ)函數(shù)的返回值信息。這些參數(shù)信息與mysql.proc表中的param_list列記錄的內(nèi)容類似。

Server層的混雜信息字典表

(1)GLOBAL_STATUS、GLOBAL_VARIABLES、SESSION_STATUS、

SESSION_VARIABLES

提供查詢?nèi)帧?huì)話級(jí)別的狀態(tài)變量與系統(tǒng)變量信息。

(2)OPTIMIZER_TRACE

提供優(yōu)化程序跟蹤功能產(chǎn)生的信息。

跟蹤功能默認(rèn)是關(guān)閉的,使用optimizer_trace系統(tǒng)變量啟用跟蹤功能。如果開(kāi)啟該功能,則每個(gè)會(huì)話只能跟蹤它自己執(zhí)行的語(yǔ)句,不能看到其他會(huì)話執(zhí)行的語(yǔ)句,且每個(gè)會(huì)話只能記錄最后一條跟蹤的SQL語(yǔ)句。

(3)PLUGINS

提供查詢關(guān)于MySQL Server支持哪些插件的信息。

(4)PROCESSLIST

提供查詢一些關(guān)于線程運(yùn)行過(guò)程中的狀態(tài)信息。

(5)PROFILING

提供查詢關(guān)于語(yǔ)句性能分析的信息。其記錄內(nèi)容對(duì)應(yīng)于SHOW PROFILES和SHOW PROFILE語(yǔ)句產(chǎn)生的信息。該表只有在會(huì)話變量 profiling=1時(shí)才會(huì)記錄語(yǔ)句性能分析信息,否則該表不記錄。

注意:從MySQL 5.7.2開(kāi)始,此表不再推薦使用,在未來(lái)的MySQL版本中刪除,改用Performance Schema代替。

(6)CHARACTER_SETS

提供查詢MySQL Server支持的可用字符集。

(7)COLLATIONS

提供查詢MySQL Server支持的可用校對(duì)規(guī)則。

(8)COLLATION_CHARACTER_SET_APPLICABILITY

提供查詢MySQL Server中哪種字符集適用于什么校對(duì)規(guī)則。查詢結(jié)果集相當(dāng)于從SHOW COLLATION獲得的結(jié)果集的前兩個(gè)字段值。目前并沒(méi)有發(fā)現(xiàn)該表有太大的作用。

(9)COLUMN_PRIVILEGES

提供查詢關(guān)于列(字段)的權(quán)限信息,表中的內(nèi)容來(lái)自mysql.column_priv列權(quán)限表(需要針對(duì)一個(gè)表的列單獨(dú)授權(quán)之后才會(huì)有內(nèi)容)。

(10)SCHEMA_PRIVILEGES

提供查詢關(guān)于庫(kù)級(jí)別的權(quán)限信息,每種類型的庫(kù)級(jí)別權(quán)限記錄一行信息,該表中的信息來(lái)自mysql.db表。

(11)TABLE_PRIVILEGES

提供查詢關(guān)于表級(jí)別的權(quán)限信息,該表中的內(nèi)容來(lái)自mysql.tables_priv表。

(12)USER_PRIVILEGES

提供查詢?nèi)謾?quán)限的信息,該表中的信息來(lái)自mysql.user表。

10.2.4 InnoDB層的系統(tǒng)字典表

(1)INNODB_SYS_DATAFILES

提供查詢InnoDB所有表空間類型文件的元數(shù)據(jù)(內(nèi)部使用的表空間ID和表空間文件的路徑信息),包括獨(dú)立表空間、常規(guī)表空間、系統(tǒng)表空間、臨時(shí)表空間和undo空間(如果開(kāi)啟了獨(dú)立undo空間的話)。

該表中的信息等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_DATAFILES表的信息。

(2)INNODB_SYS_VIRTUAL

提供查詢有關(guān)InnoDB虛擬生成列和與之關(guān)聯(lián)的列的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_VIRTUAL表的信息。該表中展示的行信息是與虛擬生成列相關(guān)聯(lián)列的每個(gè)列的信息。

(3)INNODB_SYS_INDEXES

提供查詢有關(guān)InnoDB索引的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_INDEXES表中的信息。

(4)INNODB_SYS_TABLES

提供查詢有關(guān)InnoDB表的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_TABLES表的信息。

(5)INNODB_SYS_FIELDS

提供查詢有關(guān)InnoDB索引鍵列(字段)的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_FIELDS表的信息。

(6)INNODB_SYS_TABLESPACES

提供查詢有關(guān)InnoDB獨(dú)立表空間和普通表空間的元數(shù)據(jù)信息(也包含了全文索引表空間),等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_TABLESPACES表的信息。

(7)INNODB_SYS_FOREIGN_COLS

提供查詢有關(guān)InnoDB外鍵列的狀態(tài)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部

SYS_FOREIGN_COLS表的信息。

(8)INNODB_SYS_COLUMNS

提供查詢有關(guān)InnoDB表列的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部

SYS_COLUMNS表的信息。

(9)INNODB_SYS_FOREIGN

提供查詢有關(guān)InnoDB外鍵的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_FOREIGN表的信息。

(10)INNODB_SYS_TABLESTATS

提供查詢有關(guān)InnoDB表的較低級(jí)別的狀態(tài)信息視圖。 MySQL優(yōu)化器會(huì)使用這些統(tǒng)計(jì)信息數(shù)據(jù)來(lái)計(jì)算并確定在查詢InnoDB表時(shí)要使用哪個(gè)索引。這些信息保存在內(nèi)存中的數(shù)據(jù)結(jié)構(gòu)中,與存儲(chǔ)在磁盤(pán)上的數(shù)據(jù)無(wú)對(duì)應(yīng)關(guān)系。在InnoDB內(nèi)部也無(wú)對(duì)應(yīng)的系統(tǒng)表。

InnoDB層的鎖、事務(wù)、統(tǒng)計(jì)信息字典表

(1)INNODB_LOCKS

提供查詢InnoDB引擎中事務(wù)正在請(qǐng)求的且同時(shí)被其他事務(wù)阻塞的鎖信息(即沒(méi)有發(fā)生不同事務(wù)之間鎖等待的鎖信息,在這里是查看不到的。例如,當(dāng)只有一個(gè)事務(wù)時(shí),無(wú)法查看到該事務(wù)所加的鎖信息)。該表中的內(nèi)容可用于診斷高并發(fā)下的鎖爭(zhēng)用信息。

(2)INNODB_TRX

提供查詢當(dāng)前在InnoDB引擎中執(zhí)行的每個(gè)事務(wù)(不包括只讀事務(wù))的信息,包括事務(wù)是否正在等待鎖、事務(wù)什么時(shí)間點(diǎn)開(kāi)始,以及事務(wù)正在執(zhí)行的SQL語(yǔ)句文本信息等(如果有SQL語(yǔ)句的話)。

(3)INNODB_BUFFER_PAGE_LRU

提供查詢緩沖池中的頁(yè)面信息。與INNODB_BUFFER_PAGE表不同,INNODB_BUFFER_PAGE_LRU表保存有關(guān)InnoDB緩沖池中的頁(yè)如何進(jìn)入LRU鏈表,以及在緩沖池不夠用時(shí)確定需要從中逐出哪些頁(yè)的信息。

(4)INNODB_LOCK_WAITS

提供查詢InnoDB事務(wù)的鎖等待信息。如果查詢?cè)摫頌榭?,則表示無(wú)鎖等待信息;如果查詢?cè)摫碇杏杏涗?,則說(shuō)明存在鎖等待,表中的每一行記錄表示一個(gè)鎖等待關(guān)系。在一個(gè)鎖等待關(guān)系中包含:一個(gè)等待鎖(即,正在請(qǐng)求獲得鎖)的事務(wù)及其正在等待的鎖等信息、一個(gè)持有鎖(這里指的是發(fā)生鎖等待事務(wù)正在請(qǐng)求的鎖)的事務(wù)及其所持有的鎖等信息。

(5)INNODB_TEMP_TABLE_INFO

提供查詢有關(guān)在InnoDB實(shí)例中當(dāng)前處于活動(dòng)狀態(tài)的用戶(只對(duì)已建立連接的用戶有效,斷開(kāi)的用戶連接對(duì)應(yīng)的臨時(shí)表會(huì)被自動(dòng)刪除)創(chuàng)建的InnoDB臨時(shí)表的信息。它不提供查詢優(yōu)化器使用的內(nèi)部InnoDB臨時(shí)表的信息。該表在首次查詢時(shí)創(chuàng)建。

(6)INNODB_BUFFER_PAGE

提供查詢關(guān)于緩沖池中的頁(yè)相關(guān)信息。

(7)INNODB_METRICS

提供查詢InnoDB更為詳細(xì)的性能信息,是對(duì)InnoDB的performance_schema的補(bǔ)充。通過(guò)對(duì)該表的查詢,可用于檢查InnoDB的整體健康狀況,也可用于診斷性能瓶頸、資源短缺和應(yīng)用程序的問(wèn)題等。

(8)INNODB_BUFFER_POOL_STATS

提供查詢一些InnoDB緩沖池中的狀態(tài)信息,該表中記錄的信息與SHOW ENGINEINNODB STATUS語(yǔ)句輸出的緩沖池統(tǒng)計(jì)部分信息類似。另外,InnoDB緩沖池的一些狀態(tài)變量也提供了部分相同的值。

InnoDB層的全文索引字典表

(1)INNODB_FT_CONFIG

(2)INNODB_FT_BEING_DELETED

(3)INNODB_FT_DELETED

(4)INNODB_FT_DEFAULT_STOPWORD

(5)INNODB_FT_INDEX_TABLE

InnoDB層的壓縮相關(guān)字典表

(1)INNODB_CMP和INNODB_CMP_RESET

這兩個(gè)表中的數(shù)據(jù)包含了與壓縮的InnoDB表頁(yè)有關(guān)的操作狀態(tài)信息。表中記錄的數(shù)據(jù)為測(cè)量數(shù)據(jù)庫(kù)中的InnoDB表壓縮的有效性提供參考。

(2)INNODB_CMP_PER_INDEX和INNODB_CMP_PER_INDEX_RESET

這兩個(gè)表中記錄了與InnoDB壓縮表數(shù)據(jù)和索引相關(guān)的操作狀態(tài)信息,對(duì)數(shù)據(jù)庫(kù)、表、索引的每個(gè)組合使用不同的統(tǒng)計(jì)信息,以便為評(píng)估特定表的壓縮性能和實(shí)用性提供參考數(shù)據(jù)。

(3)INNODB_CMPMEM和INNODB_CMPMEM_RESET

這兩個(gè)表中記錄了InnoDB緩沖池中壓縮頁(yè)的狀態(tài)信息,為測(cè)量數(shù)據(jù)庫(kù)中InnoDB表壓縮的有效性提供參考。

1.4.3.information_schema應(yīng)用

查看索引列的信息

INNODB_SYS_FIELDS表提供查詢有關(guān)InnoDB索引列(字段)的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典中SYS_FIELDS表的信息。

INNODB_SYS_INDEXES表提供查詢有關(guān)InnoDB索引的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典內(nèi)部SYS_INDEXES表中的信息。

INNODB_SYS_TABLES表提供查詢有關(guān)InnoDB表的元數(shù)據(jù)信息,等同于InnoDB數(shù)據(jù)字典中SYS_TABLES表的信息。

假設(shè)需要查詢lijin庫(kù)下的InnoDB表order_exp的索引列名稱、組成和索引列順序等相關(guān)信息,

則可以使用如下SQL語(yǔ)句進(jìn)行查詢

SELECT
	t. NAME AS d_t_name,
	i. NAME AS i_name,
	i.type AS i_type,
	i.N_FIELDS AS i_column_numbers,
	f. NAME AS i_column_name,
	f.pos AS i_position
FROM
	INNODB_SYS_TABLES AS t
JOIN INNODB_SYS_INDEXES AS i ON t.TABLE_ID = i.TABLE_ID
LEFT JOIN INNODB_SYS_FIELDS AS f ON i.INDEX_ID = f.INDEX_ID
WHERE
	t. NAME = 'lijin/order_exp';

結(jié)果中的列都很好理解,唯一需要額外解釋的是i_type(INNODB_SYS_INDEXES.type),它是表示索引類型的數(shù)字ID:

0 =二級(jí)索引

1=集群索引

2 =唯一索引

3 =主鍵索引

32 =全文索引

64 =空間索引

128 =包含虛擬生成列的二級(jí)索引。

到此這篇關(guān)于MySQL中的系統(tǒng)庫(kù)(sys系統(tǒng)庫(kù)、information_schema)調(diào)優(yōu)方法的文章就介紹到這了,更多相關(guān)mysql sys系統(tǒng)庫(kù) information_schema介紹內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

汾阳市| 祁东县| 天台县| 托克逊县| 苏尼特右旗| 永城市| 施秉县| 错那县| 松溪县| 天门市| 类乌齐县| 万载县| 滕州市| 中牟县| 荔波县| 湛江市| 鲁山县| 慈溪市| 广河县| 白城市| 元朗区| 南木林县| 平果县| 买车| 临澧县| 林西县| 莎车县| 江北区| 清新县| 含山县| 日土县| 周宁县| 合江县| 陵川县| 秭归县| 阿鲁科尔沁旗| 辽宁省| 蒲江县| 新和县| 营山县| 太白县|