中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

介紹一些MySQL information_schema庫相關知識

發布時間:2020-05-13 16:34:46 來源:億速云 閱讀:267 作者:三月 欄目:MySQL數據庫

下面一起來了解下MySQL information_schema庫相關知識,相信大家看完肯定會受益匪淺,文字在精不在多,希望MySQL information_schema庫相關知識這篇短內容是你想要的。

mysql> show create table test.test\G

1 row in *************************** 1. row ***************************

       Table: test

Create Table: CREATE TABLE `test` (

  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,

  `a` int(11) unsigned DEFAULT NULL,

  PRIMARY KEY (`id`),

  UNIQUE KEY `a` (`a`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8set (0.00 sec)

parameters

information_schema

一、關于字符集和排序規則相關的系統表

CHARACTER_SETS                         -- 字符集

COLLATIONS                             -- 字符集校驗集

COLLATION_CHARACTER_SET_APPLICABILITY  -- 字符集和字符校驗集的關系 這些列等效于SHOW COLLATION的前兩個顯示字段。

字符集(character sets)存儲字符串,是指人類語言中最小的表義符號。例如'A'、'B'等;

排序規則(collations)規則比較字符串,collations是指在同一字符集內字符之間的比較規則

每個字符序唯一對應一種字符集,但一個字符集可以對應多種字符序,其中有一個是默認字符序(Default Collation)

介紹一些MySQL information_schema庫相關知識

MySQL中的字符序名稱遵從命名慣例:以字符序對應的字符集名稱開頭;以_ci(表示大小寫不敏感)、_cs(表示大小寫敏感)或_bin(表示按編碼值比較)結尾。例如:在字符序"utf8_general_ci"下,字符"a"和"A"是等價的

看一下有關于字符集和校對相關的MySQL變量:

character_set_client:客戶端來源數據使用的字符集

character_set_connection:連接層字符集

character_set_database:當前選中數據庫的默認字符集

character_set_system:系統元數據(字段名等)字符集

character_set_server:默認的內部操作字符集

character_set_results:查詢結果字符集

再看一下MySQL中的字符集轉換過程:

(1)MySQL Server收到請求時將請求數據從character_set_client轉換為character_set_connection;

(2)進行內部操作前將請求數據從character_set_connection轉換為內部操作字符集,其確定方法如下:

使用每個數據字段的CHARACTER SET設定值;

若上述值不存在,則使用對應數據表的DEFAULT CHARACTER SET設定值(MySQL擴展,非SQL標準);

若上述值不存在,則使用對應數據庫的DEFAULT CHARACTER SET設定值;

若上述值不存在,則使用character_set_server設定值。

(3)將操作結果從內部操作字符集轉換為character_set_results。

二、權限相關的表

SCHEMA_PRIVILEGES    -- 提供了數據庫的相關權限,信息來自mysql.db

TABLE_PRIVILEGES     -- 提供的是表權限相關信息,信息來自mysql.tables_priv 表中加載的

COLUMN_PRIVILEGES    -- 給出了關于列權限的信息。該信息源自mysql.columns_priv授權表

USER_PRIVILEGES      -- 提供的是表權限相關信息,信息來自mysql.user 表

三、存儲數據庫系統的實體對象的一些表

COLUMNS                                -- select * from COLUMNS where TABLE_NAME='test' \G  等價于 desc test.test  或者 show columns from test.test; 

INNODB_SYS_COLUMNS                     --存放的是INNODB的元數據, 他是依賴于SYS_COLUMNS這個統計表而存在的。

ENGINES                                -- 支持的engine和默認的engine 

EVENTS                                 -- 等價于 show events 或者mysql.event,備份是要加上--event,主庫設置event_scheduler=ON,從庫event_scheduler=OFF

FILES                                  -- 表空間文件,MySQL的表空間中的數據存儲的文件的信息,文件存儲的位置,

PARAMETERS                             -- 參數表存儲了一些存儲過程和方法的參數,以及存儲過程的返回值信息。存儲和方法在ROUTINES里面存儲。

PLUGINS                                -- 基本上是MySQL的插件信息,是否是活動狀態等信息。SHOW PLUGINS的信息來自此

ROUTINES                               --關于存儲過程和方法function的一些信息以及幫助文檔,不過這個信息是不包括用戶自定義的,只是系統的一些信息。mysql.proc name

SCHEMATA                               --這個表提供了實例下有多少個數據庫,而且還有數據庫默認的字符集

TRIGGERS                              這個表記錄的就是觸發器的信息,包括所有的相關的信息。系統的和自己用戶創建的觸發器。

VIEWS                                  -- 視圖的信息,也是系統的和用戶的基本視圖信息。

四、約束外鍵等相關的一些表

REFERENTIAL_CONSTRAINTS              --提供的外鍵相關的信息,而且只提供外鍵相關信息

TABLE_CONSTRAINTS                    --提供的是相關的約束信息,比較全面

INNODB_SYS_FOREIGN_COLS              --存儲的INNODB關于外鍵的元數據信息和SYS_FOREIGN_COLS 存儲的信息是一致的

INNODB_SYS_FOREIGN                   --存儲的INNODB關于外鍵的元數據信息和SYS_FOREIGN_COLS 存儲的信息是一致的,只不過是單獨對于INNODB來說的

KEY_COLUMN_USAGE                     --描述了具有約束的鍵列。

五、關于管理的一些的一些表:

GLOBAL_STATUS                          -- 不可查,see the documentation for 'show_compatibility_56'  show global status 

GLOBAL_VARIABLES                       -- 不可查,see the documentation for 'show_compatibility_56'  show global variables 

SESSION_STATUS                         -- 不可查,see the documentation for 'show_compatibility_56'  show  status 

SESSION_VARIABLES                      -- 不可查,see the documentation for 'show_compatibility_56'  show  variables 

PARTITIONS                             -- MySQL分區表相關的信息

PROCESSLIST                            --SHOW PROCESSLIST 數據來自此表

INNODB_CMP_PER_INDEX                   -- 存儲關于壓縮INNODB表的相關信息

INNODB_CMP_PER_INDEX_RESET             -- 存儲關于壓縮INNODB表的相關信息

INNODB_CMPMEM                          -- 存放關于MySQL INNODB的壓縮頁的buffer pool信息,和show variables like 'innodb_cmp_per_index_enabled';有關,打開影響性能

INNODB_CMPMEM_RESET                    -- 存放關于MySQL INNODB的壓縮頁的buffer pool信息,和show variables like 'innodb_cmp_per_index_enabled';有關,打開影響性能

INNODB_BUFFER_POOL_STATS               --供有關INNODB 的buffer pool相關信息,和show engine innodb status提供的信息是相同的。也是show engine innodb status的信息來源。

INNODB_BUFFER_PAGE_LRU                 -- 維護了INNODB LRU LIST的相關信息

INNODB_BUFFER_PAGE                     --存放的是buffer里面緩沖的頁數據,查詢這個表會對性能產生很嚴重的影響

INNODB_SYS_DATAFILES                   --這張表就是記錄的表的文件存儲的位置和表空間的一個對應關系

INNODB_TEMP_TABLE_INFO                 --這個表記錄所有的INNODB的所有用戶使用到的信息,但是只能記錄在內存中和沒有持久化的信息。

INNODB_METRICS                         -- 提供INNODB的各種的性能指數,是對INFORMATION_SCHEMA的補充,收集的是MySQL的系統統計信息。這些統計信息都是可以手動配置打開還是關閉的。有以下參數都是可以控制的:innodb_monitor_enable, innodb_monitor_disable, innodb_monitor_reset, innodb_monitor_reset_all。

INNODB_SYS_VIRTUAL   --存儲的是INNODB表的虛擬列的信息,

INNODB_CMP    --存儲的是關于壓縮INNODB信息表的時候的相關信息

INNODB_CMP_RESET  --存儲的是關于壓縮INNODB信息表的時候的相關信息

六、關于表信息和索引信息的一些表

TABLES   -- 記錄的數據庫中表的信息,其中包括系統數據庫和用戶創建的數據庫。show table status like 'test1'\G的來源就是這個表

TABLESPACES   -- 這個表是不提供關于innodb的表空間信息的,對于我們來說并沒有太大作用,因為我們生產庫是強制INNODB的;

INNODB_SYS_TABLES  -- 此表提供了有關表格的格式和存儲特性,包括行格式,壓縮頁面大小位級別的信息

INNODB_SYS_TABLESPACES   -- 提供的是關于INNODB的表空間信息,其實和SYS_TABLESPACES 中的INNODB信息是一致的。

STATISTICS          -- 提供關于表的索引信息,所有索引的相關信息。

INNODB_SYS_INDEXES --提供相關INNODB表的索引的相關信息,和 SYS_INDEXES 這個表存儲的信息基本是一樣的,

INNODB_SYS_TABLESTATS -- 重要,記錄的是MySQL的INNODB表信息以及MySQL優化器會預估SQL選擇合適的索引信息,其實就是MySQL數據庫的統計信息

INNODB_SYS_FIELDS   --存放INNODB的表索引字段信息,以及字段的排名

INNODB_FT_CONFIG  --存放的是全文索引的信息

INNODB_FT_DEFAULT_STOPWORD  -- 存放的是stopword 的信息,是和全文索引匹配起來使用的

INNODB_FT_INDEX_TABLE    --存儲的是關于INNODB表有全文索引的索引使用信息的,同樣這個表也是要設置innodb_ft_aux_table以后才能夠使用的,一般情況下是空的

INNODB_FT_INDEX_CACHE   --存放的是插入前的記錄信息,也是為了避免DML時候昂貴的索引重組

七、關于MySQL優化相關的一些表

OPTIMIZER_TRACE                        -- 查看執行計劃的選擇,set optimizer_trace="enabled=on";SET OPTIMIZER_TRACE_MAX_MEM_SIZE=1000000; desc select * ...; select OPTIMIZER_TRACE\G

PROFILING                       --SHOW PROFILES,不能查看和剖析其他連接的語句,以及剖析時所引起的消耗。profiling_history_size 設為0等價于關閉分析功能

INNODB_FT_BEING_DELETED         --INNODB_FT_BEING_DELETED 這張表是INNODB_FT_DELETED的一個快照

INNODB_FT_DELETED               -- OPTIMIZE TABLE 的時候才會使用

八、關于MySQL事物和鎖的相關的一些表

INNODB_LOCKS                          INNODB_LOCKS表主要包含了InnoDB事務鎖的具體情況,包括事務正在申請加的鎖和事務加上的鎖。

INNODB_TRX                            INNODB_TRX表主要是包含了正在InnoDB引擎中執行的所有事務的信息,包括waiting for a lock和running的事務

INNODB_LOCK_WAITS                     INNODB_LOCK_WAITS表包含了blocked的事務的鎖等待的狀態

看完MySQL information_schema庫相關知識這篇文章后,很多讀者朋友肯定會想要了解更多的相關內容,如需獲取更多的行業信息,可以關注我們的行業資訊欄目。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

潢川县| 潮州市| 龙州县| 柏乡县| 徐水县| 大兴区| 延边| 双桥区| 霞浦县| 利川市| 静乐县| 萨嘎县| 安溪县| 汽车| 灵山县| 方正县| 广东省| 宁河县| 德化县| 玉林市| 拜城县| 双辽市| 嘉定区| 商水县| 白朗县| 东兰县| 揭阳市| 东平县| 清新县| 塔河县| 峨山| 乌鲁木齐县| 滨海县| 孙吴县| 平乡县| 岳池县| 南召县| 嘉善县| 视频| 孟州市| 镇宁|