MySQL常用系統表匯總


 

概述

本篇文章雖大部分內容為參考原文作者的相關內容,但對原文對於文章的邏輯與排版上進行了大范圍修改,方便閱讀與理解。原文鏈接在底部

MySQL5.7 默認模式

庫名

表數量

視圖數量

information_schema

61

0

mysql

32

0

performance_schema

87

0

sys

1

100

Information_schema

Information_schema數據庫是MySQL自帶的,它提供了訪問數據庫元數據的方式。

什么是元數據呢?

元數據是關於數據的數據,如數據庫名或表名,列的數據類型,或訪問權限等。有些時候用於表述該信息的其他術語包括“數據詞典”和“系統目錄”。

在MySQL中,把 information_schema 看作是一個數據庫,確切說是信息數據庫。其中保存着關於MySQL服務器所維護的所有其他數據庫的信息。如數據庫名,數據庫的表,表欄的數據類型與訪問權限等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是視圖,而不是基本表,因此,你將無法看到與之相關的任何文件

information_schema 數據庫部分表說明

表名

注釋

SCHEMATA

提供了當前mysql實例中所有數據庫的信息。是show databases的結果取之此表

TABLES

提供了關於數據庫中的表的信息(包括視圖)。詳細表述了某個表屬於哪個schema、表類型、表引擎、創建時間等信息。是show tables from schemaname的結果取之此表

COLUMNS

提供了表中的列信息。詳細表述了某張表的所有列以及每個列的信息。是show columns from schemaname.tablename的結果取之此表

STATISTICS

提供了關於表索引的信息。是show index from schemaname.tablename的結果取之此表

USER_PRIVILEGES

用戶權限表:給出了關於全程權限的信息。該信息源自mysql.user授權表。是非標准表

SCHEMA_PRIVILEGES

方案權限表:給出了關於方案(數據庫)權限的信息。該信息來自mysql.db授權表。是非標准表

TABLE_PRIVILEGES

表權限表:給出了關於表權限的信息。該信息源自mysql.tables_priv授權表。是非標准表

COLUMN_PRIVILEGES

列權限表:給出了關於列權限的信息。該信息源自mysql.columns_priv授權表。是非標准表

CHARACTER_SETS

字符集表:提供了mysql實例可用字符集的信息。是SHOW CHARACTER SET結果集取之此表

COLLATIONS

提供了關於各字符集的對照信息

COLLATION_CHARACTER_SET_APPLICABILITY

指明了可用於校對的字符集。這些列等效於SHOW COLLATION的前兩個顯示字段。

TABLE_CONSTRAINTS

描述了存在約束的表。以及表的約束類型

KEY_COLUMN_USAGE

描述了具有約束的鍵列

ROUTINES

提供了關於存儲子程序(存儲程序和函數)的信息。此時,ROUTINES表不包含自定義函數(UDF)。名為“mysql.proc name”的列指明了對應於INFORMATION_SCHEMA.ROUTINES表的mysql.proc表列

VIEWS

給出了關於數據庫中的視圖的信息。需要有show views權限,否則無法查看視圖信息

TRIGGERS

提供了關於觸發程序的信息。必須有super權限才能查看該表

performance_schema

PERFORMANCE_SCHEMA這個功能默認是關閉的。需要設置參數: performance_schema 才可以啟動該功能,這個參數是靜態參數,只能寫在my.cnf 中 不能動態修改。

performance_schema數據庫部分表說明

表名

注釋

setup_table

設置表,配置監控選項

current_events_table

記錄當前那些thread 正在發生什么事情

history_table

發生的各種事件的歷史記錄表

summary_table

對各種事件的統計表

setup_consumers\setup_instruments

描述各種事件, 設置哪些事件能夠被收集

setup_instruments

描述這個數據庫下的表名以及是否開啟監控

setup_timers

描述監控選項已經采樣頻率的時間間隔

threads

監控服務器所有連接

performance_timers

設置一些監控信息, 指定mysql服務可用的監控周期,CYCLE表示按每秒檢測2603393034次, 目前 performance-schema 只支持’wait’時間的監控,代碼樹上 wait/ 下的函數都可以監控到

mysql

在mysql數據庫中,有mysql_install_db腳本初始化權限表,存儲權限的表

mysql數據庫部分表說明

表名

注釋

user

用戶列、權限列、安全列、資源控制列

db

用戶列、權限列

host

 

table_priv

 

columns_priv

 

proc_priv

 

sys

sys_config : 這是在這個系統庫上存在的唯一一個表

sys數據庫表說明

CREATE TABLE `sys_config` ( `variable` varchar(128) NOT NULL, `value` varchar(128) DEFAULT NULL, `set_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `set_by` varchar(128) DEFAULT NULL, PRIMARY KEY (`variable`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
  • variable : 配置選項名稱
  • value : 配置選項值
  • set_time : 該行配置修改的時間
  • set_by : 該行配置信息修改者,如果從被安裝沒有修改過,那么這個數據應該為NULL

以上值的會話變量為@sys.+表中variable字段,如:

@sys.statement_truncate_len 

可以

set @sys.statement_truncate_len = 32 

臨時改變值,在會話中會一直使用這個值,如果想要恢復使用表的默認值,只需要將這個會話值設置為null

set @sys.statement_truncate_len = null; 

diagnostics.allow_i_s_tables

默認為OFF ,如果開啟表示允許diagnostics() 存儲過程執行掃描information_schema.tables 表,如果表很多,那么可能會很耗性能

diagnostics.include_raw

默認為OFF,開啟將會從metrics 視圖輸出未加工處理的數據

statement_performance_analyzer.limit

視圖在沒有加limit限制時,返回的最大行數

statement_truncate_len

通過format_statement()函數返回值的最大長度

debug

這個表非默認選項還有一個@sys.debug參數,可以手動加入

INSERT INTO sys_config (variable, value) VALUES('debug', 'ON'); UPDATE sys_config SET value = 'OFF' WHERE variable = 'debug'; SET @sys.debug = NULL;

關於此表有兩個觸發器

sys_config_insert_set_user觸發器

如果加入新行通過insert語句,那么這個觸發器會把set_by列設置為當前操作者

sys_config_update_set_user觸發器

如果加入新行通過update語句,那么這個觸發器會把set_by列設置為當前操作者

MYSQL SHOW 命令

命令

注釋

desc [table_name]

表信息

show columns from [table_name]

表字段

describe [table_name]

表信息

show create table [table_name]

表創建語句

show create database [database_name]

顯示數據庫信息

show table status from [database_name]

數據庫狀態

show tables

顯示當前數據庫中所有表的名稱

show tables from [database_name]

顯示當前數據庫中所有表的名稱(同上)

show databases

顯示mysql中所有數據庫的名稱

show processlist

顯示系統中正在運行的所有進程,也就是當前正在執行的查詢。

show table status

顯示當前使用或者指定的database中的每個表的信息。信息包括表類型和表的最新更新時間

show columns from [table_name] from [database_name]

顯示表中列名稱

show grants for user_name@localhost

顯示一個用戶的權限,顯示結果類似於grant 命令

show index from [table_name]

顯示表的索引

show status

顯示一些系統特定資源的信息,例如,正在運行的線程數量

show variables

顯示系統變量的名稱和值

show privileges

顯示服務器所支持的不同權限

show create database [database_name]

顯示create database 語句是否能夠創建指定的數據庫

show create table [table_name]

顯示create database 語句是否能夠創建指定的數據庫

show engies

顯示安裝以后可用的存儲引擎和默認引擎

show innodb status

顯示innoDB存儲引擎的狀態

show logs

顯示BDB存儲引擎的日志

show warnings

顯示最后一個執行的語句所產生的錯誤、警告和通知

show errors

只顯示最后一個執行語句所產生的錯誤

整理轉載自: https://blog.csdn.net/xlxxcc/article/details/51754524

致謝

感謝你看完這篇文章,作者原文的知識點概括的很全面,但是文章的排版與表達比較凌亂,不適宜新手來查閱,所以我就做了重構文章的一件事。希望可以幫到你。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM