您好,登錄后才能下訂單哦!
本篇內容介紹了“MYSQL 怎么獲取DB operation系統中的關鍵信息”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Database management 一定會被問及很多事情,并且自己也得平時也的預先了解一些事情以防止某些可以預防的事情。今天就總結一些常用的query sql,方便應付各種 asking.
1 統計用戶表中的字段,(被問及一個表有多少字段,應對有沒有變態的字段類型或長度,那個有唯一主鍵等等)
SELECT
INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA ,
INFORMATION_SCHEMA.COLUMNS.TABLE_NAME,
INFORMATION_SCHEMA.COLUMNS.COLUMN_NAME,
INFORMATION_SCHEMA.COLUMNS.ORDINAL_POSITION,
INFORMATION_SCHEMA.COLUMNS.DATA_TYPE,
INFORMATION_SCHEMA.COLUMNS.COLUMN_KEY,
INFORMATION_SCHEMA.COLUMNS.EXTRA
FROM INFORMATION_SCHEMA.COLUMNS
WHERE INFORMATION_SCHEMA.COLUMNS.TABLE_SCHEMA not in ('information_schema','mysql','sys','performance_schema');
2 查看用戶的數據庫中是否有外鍵的使用
SELECT
INFORMATION_SCHEMA.KEY_COLUMN_USAGE.TABLE_NAME,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE.COLUMN_NAME,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE.CONSTRAINT_NAME, INFORMATION_SCHEMA.KEY_COLUMN_USAGE.REFERENCED_TABLE_NAME,
INFORMATION_SCHEMA.KEY_COLUMN_USAGE.REFERENCED_COLUMN_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
where INFORMATION_SCHEMA.KEY_COLUMN_USAGE.REFERENCED_TABLE_NAME is not null
3 查看當前數據庫instance 所有數據庫的容量
SELECT table_schema "Database Name",
SUM( data_length + index_length)/1024/1024 "Database Size (MB)"
FROM information_schema.TABLES
group by table_schema;
4 查看 (employees) 數據庫中所有的表的占用的空間
SELECT table_name "Table Name", table_rows "Rows Count",
round(((data_length + index_length)/1024/1024),2) "Table Size (MB)"
FROM information_schema.TABLES WHERE table_schema = "employees"
5 查看當前的客戶端連接數據庫情況
select host, current_connections,statements from sys.host_summary;
6 查看當前連接到數據庫中,運行次數最多的SQL
select * from sys.statement_analysis order by exec_count desc limit 10;
7 查看當前系統I/O 中使用最量最大的前十文件
select * from sys.io_global_by_file_by_bytes limit 10;
8 查看平均延遲比較嚴重的
select * from sys.statement_analysis order by avg_latency desc limit 1
9 查看平均延遲比較嚴重的語句 TOP 10
select * from sys.statement_analysis order by avg_latency desc limit
10 查看系統中從未使用過的索引
select * from sys.schema_unused_indexes;
11 查看系統中冗余的索引
select table_schema,table_name,redundant_index_name,redundant_index_columns,dominant_index_name,dominant_index_columns from sys.schema_redundant_indexes;
12 那些表使用了臨時表
select db, query, tmp_tables,tmp_disk_tables from sys.statement_analysis where tmp_tables>0 or tmp_disk_tables >0 order by(tmp_tables+tmp_disk_tables) desc limit 20;
13 那些表占用的buffer pool 最多
select * from sys.innodb_buffer_stats_by_table order by pages desc limit 10
14 查看每個鏈接占用的內存
select b.user, current_count_used,current_allocated, current_avg_alloc, current_max_alloc,total_allocated,current_statement from sys.memory_by_thread_by_current_bytes a,sys.session b where a.thread_id = b.thd_id;
15 查看MYSQL 內部的連接線程的數量
select user, count(*) from sys.processlist group by user;
16 查看各個表自增ID使用情況
select * from sys.schema_auto_increment_columns limit 10;
17 查看當前的數據庫中是否有全表掃描的語句,并反映相關沒有使用索引的具體情況
select query,db,exec_count,total_latency,no_index_used_count,no_good_index_used_count,last_seen from sys.statements_with_full_table_scans;
18 查看當前系統中最慢的10條執行的 SQL
select query,db,full_scan,exec_count,avg_latency,rows_sent from sys.statements_with_runtimes_in_95th_percentile;
19 系統中那些事件延遲并根據平均延遲時間排序
select * from sys.wait_classes_global_by_latency;
20 當前如果有鎖的情況下,會在此表顯示鎖信息
select * from sys.schema_table_lock_waits;
“MYSQL 怎么獲取DB operation系統中的關鍵信息”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。