MySQL經常使用系統表彙總

 

概述javascript

本篇文章雖大部份內容爲參考原文做者的相關內容,但對原文對於文章的邏輯與排版上進行了大範圍修改,方便閱讀與理解。原文連接在底部java

MySQL5.7 默認模式

庫名mysql

表數量sql

視圖數量數據庫

information_schema安全

61服務器

0markdown

mysqlapp

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

致謝

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

相關文章
相關標籤/搜索