1. 程式人生 > >MySQL常用系統表大全

MySQL常用系統表大全

      MySQL5.7 預設的模式有:information_schema, 具有 61個表; m ysqL, 具有31個表; performance_schema,具有87個表; sys, 具有1個表, 100個檢視.

      Information_schema資料庫是MySQL自帶的,它提供了訪問資料庫元資料的方式。什麼是元資料呢?元資料是關於資料的資料,如資料庫名或表名,列的資料型別,或訪問許可權等。有些時候用於表述該資訊的其他術語包括“資料詞典”和“系統目錄”。

      在 MySQL中,把 information_schema 看作是一個數據庫,確切說是資訊資料庫。其中儲存著關於MySQL伺服器所維護的所有其他資料庫的資訊。如資料庫名,資料庫的表,表欄的資料型別與訪問許可權等。在INFORMATION_SCHEMA中,有數個只讀表。它們實際上是檢視,而不是基本表,因此,你將無法看到與之相關的任何檔案

1. MYSQL SHOW 命令

desc 表名;       // 表資訊
show columns from 表名;       // 表字段
describe 表名;       // 表資訊
show create table 表名;        // 表建立語句
show create database 資料庫名;        // 顯示資料庫 資訊
show table status from 資料庫名;        // 資料庫狀態
show tables或show tables from database_name;

      // 顯示當前資料庫中所有表的名稱
show databases;       // 顯示mysql中所有資料庫的名稱
show processlist;       // 顯示系統中正在執行的所有程序,也就是當前正在執行的查詢。大多數使用者可以檢視他們自己的程序,但是如果他們擁有process許可權,就可以檢視所有人的程序,包括密碼。
show table status;       // 顯示當前使用或者指定的database中的每個表的資訊。資訊包括表型別和表的最新更新時間
show columns from table_name from database_name;
       // 顯示錶中列名稱
show columns from database_name.table_name;        // 顯示錶中列名稱
show grants for [email protected];        // 顯示一個使用者的許可權,顯示結果類似於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;       // 只顯示最後一個執行語句所產生的錯誤

使用如下語句可以檢視當前資料庫的各IP連線數

select SUBSTRING_INDEX(host,':',1) as ip , count(*)
from information_schema.processlist group by ip

2. 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許可權才能檢視該表。

3. performance_schema資料庫部分表說明
    PERFORMANCE_SCHEMA這個功能預設是關閉的。需要設定引數: performance_schema 才可以啟動該功能,這個引數是靜態引數,只能寫在my.cnf 中 不能動態修改。
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/ 下的函式都可以監控到。

4. mysql資料庫部分表說明
在mysql資料庫中,有mysql_install_db指令碼初始化許可權表,儲存許可權的表有:
1、user表: 使用者列、許可權列、安全列、資源控制列
2、db表 : 使用者列、許可權列
3、host表
4、table_priv表
5、columns_priv表
6、proc_priv表

5. sys資料庫表說明
sys_config : 這是在這個系統庫上存在的唯一一個表了, 表結構如下:

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_performance_analyzer.view
• statement_truncate_len : 通過format_statement()函式返回值的最大長度

這個表非預設選項還有一個@sys.debug引數 , 可以手動加入:

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

5.1、關於這個表有兩個觸發器
5.1.1 sys_config_insert_set_user觸發器
如果加入新行通過insert語句,那麼這個觸發器會把set_by列設定為當前操作者
5.1.2 sys_config_update_set_user觸發器
如果加入新行通過update語句,那麼這個觸發器會把set_by列設定為當前操作者

5.2.檢視 : 以下部分只介紹不包含x$的檢視內容
5.2.1 host_summary (主機概要)
• host : 監聽連線過的主機
• statements : 當前主機執行的語句總數
• statement_latency : 語句等待時間(延遲時間)
• statement_avg_latency : 執行語句平均延遲時間
• table_scans : 表掃描次數
• file_ios : io時間總數
• file_io_latency : 檔案io延遲
• current_connections : 當前連線數
• total_connections : 總連結數
• unique_users : 該主機的唯一使用者數
• current_memory : 當前賬戶分配的記憶體
• total_memory_allocated : 該主機分配的記憶體總數

5.2.2 The host_summary_by_file_io_type
•host : 主機
•event_name : IO事件名稱
•total : 該主機發生的事件
•total_latency : 該主機發生IO事件總延遲時間
•max_latency : 該主機IO事件中最大的延遲時間

5.2.3 The host_summary_by_file_io
•host : 主機
•ios : IO事件總數
•io_latency : IO總的延遲時間

5.2.4 The host_summary_by_stages
• host :主機
• event_name :名稱
• total :發生的總數
• total_latency : 總的延遲時間
• avg_latency :平均延遲時間

5.2.5 The host_summary_by_statement_latency
• host : 主機
• total : 這個主機的語句總數
• total_latency : 這個主機總的延遲時間
• max_latency : 主機最大的延遲時間
• lock_latency : 等待鎖的鎖延遲時間
• rows_sent : 該主機通過語句返回的總行數
• rows_examined : 在儲存引擎上通過語句返回的行數
• rows_affected : 該主機通過語句影響的總行數
• full_scans : 全表掃描的語句總數

5.2.6 The host_summary_by_statement_type 這個表示總結描述執行語句資訊的,通常按照主機和宣告型別進行分組。預設情況下是按照主機排序
• host: 主機
• statement: 最後的語句事件名稱
• total: sql語句總數
• total_latency: sql語句總延遲數
• max_latency: 最大的sql語句延遲數
• lock_latency: 鎖延遲總數
• rows_sent: 語句返回的行總數
• rows_examined: 通過儲存引擎的sql語句的讀取的總行數
• rows_affected: 語句影響的總行數
• full_scans : 全表掃描的語句事件總數

5.2.7 The innodb_buffer_stats_by_schema 這個表是通過資料庫統計innodb引擎的innodb快取
• object_schema: 資料庫名稱
• allocated: 分配給當前資料庫的總的位元組數
• data: 分配給當前資料庫的資料位元組數
• pages: 分配給當前資料庫的總頁數
• pages_hashed: 分配給當前資料庫的hash頁數
• pages_old: 分配給當前資料庫的舊頁數
• rows_cached: 當前資料庫快取的行數

5.2.8 The innodb_buffer_stats_by_table 這個表是通過每個表innodb引擎的innodb快取
• object_schema: 資料庫名稱
• object_name: 表名稱
• allocated: 分配給表的總位元組數
• data: 分配該表的資料位元組數
• pages: 分配給表的頁數
• pages_hashed: 分配給表的hash頁數
• pages_old : 分配給表的舊頁數
• rows_cached : 表的行快取數

5.2.9 The innodb_lock_waits 這個表其實從檢視的語句來看就是information_schema這個資料庫中的innodb_locks、innodb_trx這兩個表的整合,能夠更清晰的顯示當前例項的鎖情況
• wait_started : 鎖等待發生的時間
• wait_age : 鎖已經等待了多長時間
• wait_age_secs : 以秒為單位顯示鎖已經等待的時間(5.7.9中新增此列)
• locked_table : 被鎖的表
• locked_index : 被鎖住的索引
• locked_type : 鎖型別
• waiting_trx_id : 正在等待的事務ID
• waiting_trx_started : 等待事務開始的時間
• waiting_trx_age : 已經等待事務多長時間
• waiting_trx_rows_locked : 正在等待的事務被鎖的行數量
• waiting_trx_rows_modified : 正在等待行重定義的數量
• waiting_pid : 正在等待事務的執行緒id
• waiting_query : 正在等待鎖的查詢
• waiting_lock_id : 正在等待鎖的ID
• waiting_lock_mode : 等待鎖的模式
• blocking_trx_id : 阻塞等待鎖的事務id
• blocking_pid : 正在鎖的執行緒id
• blocking_query : 正在鎖的查詢
•blocking_lock_id : 正在阻塞等待鎖的鎖id.
•blocking_lock_mode : 阻塞鎖模式
• blocking_trx_started : 阻塞事務開始的時間
• blocking_trx_age : 阻塞的事務已經執行的時間
• blocking_trx_rows_locked : 阻塞事務鎖住的行的數量
• blocking_trx_rows_modified : 阻塞事務重定義行的數量
• sql_kill_blocking_query : kill 語句殺死正在執行的阻塞事務, 在mysql5.7.9中被加入
• sql_kill_blocking_connection : kill 語句殺死會話中正在執行的阻塞事務,在mysql5.7.9中被加入

5.2.10 The io_by_thread_by_latency 這個過程主要資訊是通過IO的消耗展示IO等待的時間
• user : 對於當前執行緒來說,這個值是執行緒被分配的賬戶,對於後臺執行緒來講,就是執行緒的名稱
• total : IO事件的總數
• total_latency : IO事件的總延遲
• min_latency : 單個最小的IO事件延遲
• avg_latency : 平均IO延遲
• max_latency : 最大IO延遲
• thread_id : 執行緒ID
• processlist_id : 對於當前執行緒就是此時的ID,對於後臺就是null

相關推薦

MySQL常用系統大全

      MySQL5.7 預設的模式有:information_schema, 具有 61個表; m ysqL, 具有31個表; performance_schema,具有87個表; sys, 具有1個表, 100個檢視.       Informati

SQL Server常用系統

data pro 根據 結果 同時 最大 sys 次數 max 1、查詢當前數據庫中的用戶表 select *from sysobjects where xtype=‘U‘; 2、獲取SQL Server允許同時用戶連接的最大數 SELECT @@MAX_CONNECTIO

Mysql 5.7.20 mysql innodb 系統損壞帶來的問題

sha use linux系統 type log tle blob b- 資料 早上上班後,mysql服務器遇到點小問題,在排查故障過程查看mysql錯誤日誌過程中發現有幾個innodb 表無法打開,使用desc查看有關表的表結構提示表不存在,show tables 可以查

MySQL常用命令操作大全

記錄 字段 goods 輸入密碼 文件 oca xtra update 密碼 linux操作mysql數據庫 mysql -u root -p 等待輸入密碼,密碼不可見。然後輸入密碼。(root是用戶名),然後進入mysql1、顯示數據庫 show databases;

ServiceNow常用系統

ServiceNowtask : incident problem change_request sc_request sc_request_item sys_user : 用戶表 sys_user_group : 用戶組表 sys_user_role : 用戶角色表 sys_attachment : 附

Mysql常用命令行大全

出現 註意 avg RR 5.7 first sel sca 意義 1、連接Mysql 格式: mysql -h主機地址 -u用戶名 -p用戶密碼1、連接到本機上的MYSQL。首先打開DOS窗口,然後進入目錄mysql\bin,再鍵入命令mysql -u root -p,回

Oracle系統大全

  ORACLE系統表處理  1.取得指定使用者的所有表名: Java程式碼  SELECT OWNER  AS "物件所有者",OBJECT_NAME AS "表名",OBJECT_ID A

MySQL常用系統函式

一、 字串函式 CANCAT(S1,S2,…Sn) 連線 S1,S2,…Sn 為一個字串 INSERT(str,x,y,instr) 將字串 str 從第 x 位置開始,y 個字元長的子串替換為字串 instr LOWER(str) 將字串 str 中所有字元變為

MySQL常用SQL語句大全

零、使用者管理:   1、新建使用者:     >CREATE USER name IDENTIFIED BY 'ssapdrow';   2、更改密碼:     >SET PASSWORD FOR name=PASSWORD('fdddf

Mysql常用命令列大全

第一招、mysql服務的啟動和停止 net stop mysql net start mysql 第二招、登陸mysql 語法如下: mysql -u使用者名稱 -p使用者密碼 鍵入命令mysql -uroot -p, 回車後提示你輸入密碼,輸入12345,然後

資料庫常用系統整理

1,查詢當前使用者所具有的表 select * from dba_tables t where t.tablespace_name='USERS' and t.owner='USERNAME' 2,查詢當前使用者所具有的檢視 select * from dba_views

Oracle資料庫常用系統總結(一)

1、user_tables:查詢本使用者底下所有的表資訊:包括:表名、表空間等資訊 2、user_tab_comments:主要是查詢本使用者下的所有的表的資訊,包括: TABLE_NAME—表名 TABLE_TYPE—表類別:表(TABLE)還是檢視(VIEW)

mysql 常用命令技巧大全

#刪除資料庫 DROP DATABASE IF EXISTS learn; #建立資料庫 CREATE DATABASE learn CHARSET utf8; #選擇資料庫 USE learn; #刪除資料庫表 DROP TABLE IF EXIST

MySQL常用分庫方式

[TOC] MySQL常用分表分庫方式 一般都喜歡分表要麼藉助第三方工具,比如MySQL各種各樣的中介軟體.這樣會比較省事. 但是

mysql常用命令大全

詳細 pre denied 隱患 命令 緩存 如果 數據庫權限 磁盤空間 第一招、mysql服務的啟動和停止 net stop mysql net start mysql 第二招、登陸mysql 語法如下: mysql -u用戶名 -p用戶密碼 鍵入命令mysql -uro

MySQL 常用語句大全

存儲過程 isa 錯誤 崩潰 一起 primary 新的 視圖 庫存 MySQL 常用語句大全 一、連接 MySQL 格式: mysql -h 主機地址 -u 用戶名 -p 用戶密碼 1、例 1:連接到本機上的 MYSQL。 首先在打開 DOS 窗口,然後進入目錄 mysq

Oracle系統整理+常用SQL語句收集(轉載)

原文:https://www.cnblogs.com/jiangxinnju/p/5840420.html-- DBA/ALL/USER/V_$/GV_$/SESSION/INDEX開頭的絕大部分都是檢視 -- DBA_TABLES意為DBA擁有的或可以訪問的所有的關係表。 -- ALL_TABLES意

flush privileges刷新MySQL系統權限相關

mysql數據庫 create 相關 方法 刷新 創建 pmo 改密 密碼 mysql> flush privileges mysql> update mysql.user set password=PASSWORD(‘新密碼’) where User=’roo

Linux系統中docker部署mysql常用命令

注:mysql語句輸入之後一定要加 ;(分號) 才能執行 1.進入mysql容器 docker exec -it mysql_db_1 bash 2.語法:mysql -u使用者名稱 -p+回車,然後輸入密碼 舉例: mysql -u root -p 輸入密

常用Mysql資料庫操作語句大全

學習連結:https://www.cnblogs.com/picaso/archive/2012/05/17/2505895.html 零、使用者管理: 1、新建使用者: >CREATE USER name IDENTIFIED BY ‘ssapdrow’; 2、更改