共計 10004 個字符,預(yù)計需要花費 26 分鐘才能閱讀完成。
這篇文章主要介紹了 MySQL 查看數(shù)據(jù)庫狀態(tài)命令是什么的相關(guān)知識,內(nèi)容詳細(xì)易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇 MySQL 查看數(shù)據(jù)庫狀態(tài)命令是什么文章都會有所收獲,下面我們一起來看看吧。
前言
數(shù)據(jù)查詢語言(DQL: Data Query Language):其語句,也稱為“數(shù)據(jù)檢索語句”,用以從表中獲得數(shù)據(jù),確定數(shù)據(jù)怎樣在應(yīng)用程序給出。保留字 SELECT 是 DQL(也是所有 SQL)用得最多的動詞,其他 DQL 常用的保留字有 WHERE,ORDER BY,GROUP BY 和 HAVING。這些 DQL 保留字常與其它類型的 SQL 語句一起使用。
show status
使用 SHOW STATUS 語句能夠獲取 MySQL 服務(wù)器的一些狀態(tài)信息,這些狀態(tài)信息主要是 MySQL 數(shù)據(jù)庫的性能參數(shù)。SHOW STATUS 語句的語法格式如下:
SHOW [SESSION | GLOBAL] STATUS LIKE status_name
其中,SESSION 表示獲取當(dāng)前會話級別的性能參數(shù),GLOBAL 表示獲取全局級別的性能參數(shù),并且 SESSION 和 GLOBAL 可以省略,如果省略不寫,默認(rèn)為 SESSION。status_name 表示查詢的參數(shù)值。熟練掌握這些參數(shù)的使用,能夠更好地了解 SQL 語句的執(zhí)行頻率。SHOW STATUS 語句支持的參數(shù)值
Not_flushed_key_blocks 在鍵緩存中已經(jīng)改變但是還沒被清空到磁盤上的鍵塊。Not_flushed_delayed_rows
mysql show status;
+-----------------------------------------------+--------------------------------------------------+
| Variable_name | Value |
+-----------------------------------------------+--------------------------------------------------+
| Aborted_clients | 1 由于客戶沒有正確關(guān)閉連接已經(jīng)死掉,已經(jīng)放棄的連接數(shù)量 |
| Aborted_connects | 0 嘗試已經(jīng)失敗的 MySQL 服務(wù)器的連接的次數(shù) |
| Binlog_cache_disk_use | 0 該狀態(tài)表示有多少個事務(wù)使用了臨時文件 |
| Binlog_cache_use | 1 有多少個事物使用了 ache_size 來緩存未提交的事物日志 |
| Binlog_stmt_cache_disk_use | 0 |
| Binlog_stmt_cache_use | 0 |
| Bytes_received | 248 從客戶處已經(jīng)接收到的字節(jié)數(shù) |
| Bytes_sent | 185 已經(jīng)發(fā)送給所有客戶的字節(jié)數(shù) |
| Com_statement | 0 每一個變量語句對應(yīng)的次數(shù) |
| Connections | 41472 試圖連接 MySQL 服務(wù)器的次數(shù) |
| Created_tmp_disk_tables | 0 服務(wù)器執(zhí)行語句時在硬盤上自動創(chuàng)建的臨時表的數(shù)量 |
| Created_tmp_files | 5 mysqld 創(chuàng)建的臨時文件個數(shù) |
| Created_tmp_tables | 0 當(dāng)執(zhí)行語句時,已經(jīng)被創(chuàng)造了的隱含臨時表的數(shù)量 |
| Delayed_errors | 0 用 INSERT DELAYED 寫入的發(fā)生某些錯誤 (可能重復(fù)鍵值) 的行數(shù) |
| Delayed_insert_threads | 0 正在使用的延遲插入處理器線程的數(shù)量 |
| Delayed_writes | 0 用 INSERT DELAYED 寫入的行數(shù) |
| Flush_commands | 17 執(zhí)行 FLUSH 命令的次數(shù) |
| Handler_commit | 0 內(nèi)部 COMMIT 命令的個數(shù) |
| Handler_delete | 0 請求從一張表中刪除行的次數(shù) |
| Handler_discover | 0 MySQL 服務(wù)器可以問 NDB CLUSTER 存儲引擎是否知道某一名字的表 |
| Handler_external_lock | 0 |
| Handler_mrr_init | 0 |
| Handler_prepare | 0 兩階段提交操作準(zhǔn)備階段的計數(shù)器 |
| Handler_read_first | 0 請求讀入表中第一行的次數(shù) |
| Handler_read_key | 0 請求數(shù)字基于鍵讀行 |
| Handler_read_last | 0 |
| Handler_read_next | 0 請求讀入基于一個鍵的一行的次數(shù) |
| Handler_read_prev | 0 按照索引的順序讀取前面一行數(shù)據(jù)的請求的個數(shù) |
| Handler_read_rnd | 0 請求讀入基于一個固定位置的一行的次數(shù) |
| Handler_read_rnd_next | 0 讀取數(shù)據(jù)文件中下一行數(shù)據(jù)的請求的個數(shù) |
| Handler_rollback | 0 內(nèi)部 ROLLBACK 命令的數(shù)量 |
| Handler_savepoint | 0 在一個存儲引擎放置一個保存點的請求數(shù)量 |
| Handler_savepoint_rollback | 0 在一個存儲引擎的要求回滾到一個保存點數(shù)目 |
| Handler_update | 0 請求更新表中一行的次數(shù) |
| Handler_write | 0 請求向表中插入一行的次數(shù) |
| Innodb_buffer_pool_dump_status | Dumping of buffer pool not started |
| Innodb_buffer_pool_load_status | Buffer pool(s) load completed at 220224 21:04:35 |
| Innodb_buffer_pool_resize_status | |
| Innodb_buffer_pool_pages_data | 32422 |
| Innodb_buffer_pool_bytes_data | 531202048 |
| Innodb_buffer_pool_pages_dirty | 0 |
| Innodb_buffer_pool_bytes_dirty | 0 |
| Innodb_buffer_pool_pages_flushed | 235 |
| Innodb_buffer_pool_pages_free | 97929 |
| Innodb_buffer_pool_pages_misc | 705 |
| Innodb_buffer_pool_pages_total | 131056 |
| Innodb_buffer_pool_read_ahead_rnd | 0 |
| Innodb_buffer_pool_read_ahead | 23377 |
| Innodb_buffer_pool_read_ahead_evicted | 0 |
| Innodb_buffer_pool_read_requests | 330362716 InnoDB 已經(jīng)完成的邏輯讀請求數(shù) |
| Innodb_buffer_pool_reads | 9004 |
| Innodb_buffer_pool_wait_free | 0 |
| Innodb_buffer_pool_write_requests | 3783 |
| Innodb_data_fsyncs | 47 |
| Innodb_data_pending_fsyncs | 0 |
| Innodb_data_pending_reads | 0 |
| Innodb_data_pending_writes | 0 |
| Innodb_data_read | 530813440 |
| Innodb_data_reads | 33379 |
| Innodb_data_writes | 279 |
| Innodb_data_written | 4193792 至此已經(jīng)寫入的數(shù)據(jù)量(字節(jié)) |
| Innodb_dblwr_pages_written | 20 |
| Innodb_dblwr_writes | 10 |
| Innodb_log_waits | 0 我們必須等待的時間 |
| Innodb_log_write_requests | 9 日志寫請求數(shù) |
| Innodb_log_writes | 15 向日志文件的物理寫數(shù)量 |
| Innodb_os_log_fsyncs | 22 向日志文件完成的 fsync()寫數(shù)量 |
| Innodb_os_log_pending_fsyncs | 0 掛起的日志文件 fsync()操作數(shù)量 |
| Innodb_os_log_pending_writes | 0 掛起的日志文件寫操作 |
| Innodb_os_log_written | 12288 寫入日志文件的字節(jié)數(shù) |
| Innodb_page_size | 16384 編譯的 InnoDB 頁大小(默認(rèn) 16KB) |
| Innodb_pages_created | 42 創(chuàng)建的頁數(shù) |
| Innodb_pages_read | 32380 讀取的頁數(shù) |
| Innodb_pages_written | 235 寫入的頁數(shù) |
| Innodb_row_lock_current_waits | 0 當(dāng)前等待的待鎖定的行數(shù) |
| Innodb_row_lock_time | 0 行鎖定花費的總時間,單位毫秒 |
| Innodb_row_lock_time_avg | 0 行鎖定的平均時間,單位毫秒 |
| Innodb_row_lock_time_max | 0 行鎖定的最長時間,單位毫秒 |
| Innodb_row_lock_waits | 0 一行鎖定必須等待的時間數(shù) |
| Innodb_rows_deleted | 6 從 InnoDB 表刪除的行數(shù) |
| Innodb_rows_inserted | 2193 插入到 InnoDB 表的行數(shù) |
| Innodb_rows_read | 351814064 從 InnoDB 表讀取的行數(shù) |
| Innodb_rows_updated | 0 InnoDB 表內(nèi)更新的行數(shù) |
| Innodb_num_open_files | 136 |
| Innodb_truncated_status_writes | 0 |
| Innodb_available_undo_logs | 128 |
| Key_blocks_not_flushed | 0 鍵緩存內(nèi)已經(jīng)更改但還沒有清空到硬盤上的鍵的數(shù)據(jù)塊數(shù)量 |
| Key_blocks_unused | 53585 鍵緩存內(nèi)未使用的塊數(shù)量 |
| Key_blocks_used | 3 用于關(guān)鍵字緩存的塊的數(shù)量 |
| Key_read_requests | 6 請求從緩存讀入一個鍵值的次數(shù) |
| Key_reads | 3 從磁盤物理讀入一個鍵值的次數(shù) |
| Key_write_requests | 0 請求將一個關(guān)鍵字塊寫入緩存次數(shù) |
| Key_writes | 0 將一個鍵值塊物理寫入磁盤的次數(shù) |
| Last_query_cost | 0.000000 |
| Last_query_partial_plans | 0 |
| Locked_connects | 0 |
| Max_execution_time_exceeded | 0 |
| Max_execution_time_set | 0 |
| Max_execution_time_set_failed | 0 |
| Max_used_connections | 330 同時使用的連接的最大數(shù)目 |
| Max_used_connections_time | 2022-02-24 22:07:44 |
| Not_flushed_delayed_rows | 0 在 INSERT DELAY 隊列中等待寫入的行的數(shù)量 |
| Ongoing_anonymous_transaction_count | 0 |
| Open_files | 5 打開文件的數(shù)量 |
| Open_streams | 0 打開流的數(shù)量(主要用于日志記載) |
| Open_table_definitions | 11 緩存的.frm 文件數(shù) |
| Open_tables | 78 打開表的數(shù)量 |
| Opened_files | 7925 系統(tǒng)打開過的文件總數(shù) |
| Opened_table_definitions | 0 已緩存的.frm 文件數(shù) |
| Opened_tables | 0 已經(jīng)打開的表的數(shù)量 |
| Qcache_free_blocks | 1 查詢緩存內(nèi)自由內(nèi)存塊的數(shù)量 |
| Qcache_free_memory | 1031832 用于查詢緩存的自由內(nèi)存的數(shù)量 |
| Qcache_hits | 0 查詢緩存被訪問的次數(shù) |
| Qcache_inserts | 0 加入到緩存的查詢數(shù)量 |
| Qcache_lowmem_prunes | 0 由于內(nèi)存較少從緩存刪除的查詢數(shù)量 |
| Qcache_not_cached | 236889 非緩存查詢數(shù) |
| Qcache_queries_in_cache | 0 登記到緩存內(nèi)的查詢的數(shù)量 |
| Qcache_total_blocks | 1 查詢緩存內(nèi)的總塊數(shù) |
| Queries | 561204 被服務(wù)器執(zhí)行的語句個數(shù) |
| Questions | 2 發(fā)往服務(wù)器的查詢的數(shù)量 |
| Select_full_join | 0 |
| Select_full_range_join | 0 |
| Select_range | 0 |
| Select_range_check | 0 |
| Select_scan | 0 |
| Slave_open_temp_tables | 0 |
| Slow_launch_threads | 0 |
| Slow_queries | 0 要花超過 long_query_time 時間的查詢數(shù)量 |
| Sort_merge_passes | 0 |
| Sort_range | 0 |
| Sort_rows | 0 |
| Sort_scan | 0 |
| Ssl_*** | 0 用于 SSL 連接的變量 |
| Table_locks_immediate | 123 立即獲得的表的鎖的次數(shù) |
| Table_locks_waited | 0 不能立即獲得的表的鎖的次數(shù) |
| Tc_log_max_pages_used | 0 日志使用的最大頁數(shù) |
| Tc_log_page_size | 0 用于 XA 恢復(fù)日志的內(nèi)存映射實現(xiàn)的頁面大小 |
| Tc_log_page_waits | 0 對于恢復(fù)日志的內(nèi)存映射實現(xiàn) |
| Threads_cached | 2 線程的緩存值 |
| Threads_connected | 328 當(dāng)前打開的連接的數(shù)量 |
| Threads_created | 330 創(chuàng)建用來處理連接的線程數(shù) |
| Threads_running | 2 不在睡眠的線程數(shù)量 |
| Uptime | 42686 服務(wù)器工作了多少秒 |
| Uptime_since_flush_status | 42686 最近一次使用 FLUSH STATUS 的時間(以秒為單位)|
# 狀態(tài)信息查詢語句
-- 查看試圖連接到 MySQL(不管是否連接成功)的連接數(shù)
show status like connections
-- 查看線程緩存內(nèi)的線程的數(shù)量。show status like threads_cached
-- 查看當(dāng)前打開的連接的數(shù)量。show status like threads_connected
-- 查看查詢時間超過 long_query_time 秒的查詢的個數(shù)。show status like slow_queries
-- 查看線程數(shù)
show status like Threads%
Threads_connected : 這個數(shù)值指的是打開的連接數(shù).
Threads_running :這個數(shù)值指的是激活的連接數(shù),這個數(shù)值一般遠低于 connected 數(shù)值.
Threads_connected 跟 show processlist 結(jié)果相同,表示當(dāng)前連接數(shù)。準(zhǔn)確的來說,Threads_running 是代表當(dāng)前并發(fā)數(shù)
Threads_created 表示創(chuàng)建過的線程數(shù),通過查看 Threads_created 就可以查看 MySQL 服務(wù)器的進程狀態(tài)。(MySQL 服務(wù)器的線程數(shù)需要在一個合理的范圍之內(nèi),這樣才能保證 MySQL 服務(wù)器健康平穩(wěn)地運行)如果我們在 MySQL 服務(wù)器配置文件中設(shè)置了 thread_cache_size,當(dāng)客戶端斷開之后,服務(wù)器處理此客戶的線程將會緩存起來以響應(yīng)下一個客戶而不是銷毀(前提是緩存數(shù)未達上限)。Threads_created 表示創(chuàng)建過的線程數(shù),如果發(fā)現(xiàn) Threads_created 值過大的話,表明 MySQL 服務(wù)器一直在創(chuàng)建線程,這也是比較耗資源,可以適當(dāng)增加配置文件中 thread_cache_size 值,查詢服務(wù)器 thread_cache_size 的值: show variables like thread_cache_size
# 通常 mysql 的最大連接數(shù)默認(rèn)是 100, 最大可以達到 16384。show variables like %max_connection% 查看最大連接數(shù)
set global max_connections=200
SET GLOBAL innodb_lru_scan_depth=256;
影響對 InnoDB 緩沖池進行刷新操作的算法和啟發(fā)式的參數(shù)。性能專家對調(diào)優(yōu) I / o 密集型工作負(fù)載感興趣。它指定了每個緩沖池實例,在緩沖池 LRU 頁面下列出頁面清潔線程掃描以查找要刷新的臟頁的距離。這是每秒執(zhí)行一次的后臺操作。` 小于默認(rèn)值的設(shè)置通常適用于大多數(shù)工作負(fù)載 `。如果值遠高于必要值,可能會影響性能。只有在典型工作負(fù)載下有空閑 I / O 容量時,才考慮增加該值。相反,如果寫密集的工作負(fù)載使 I / O 容量飽和,則減少該值,特別是在使用大型緩沖池的情況下。調(diào)優(yōu) innodb_lru_scan_depth 時,從一個較低的值開始,向上配置,目標(biāo)是很少看到零空閑頁面。另外,當(dāng)改變緩沖池實例數(shù)時,可以考慮調(diào)整 innodb_lru_scan_depth,因為 innodb_lru_scan_depth * innodb_buffer_pool_instances 定義了頁面清理線程每秒執(zhí)行的工作量。
show processlist;
show full processlist; 或 show processlist(默認(rèn)只列出前 100); // 顯示哪些線程正在運行
id #ID 標(biāo)識,要 kill 一個語句的時候很有用
user # 當(dāng)前連接用戶
host # 顯示這個連接從哪個 ip 的哪個端口上發(fā)出
db # 數(shù)據(jù)庫名
command # 連接狀態(tài),一般是休眠(sleep),查詢(query),連接(connect)time # 連接持續(xù)時間,單位是秒
state # 顯示當(dāng)前 sql 語句的狀態(tài)
info # 顯示這個 sql 語句
show slave status \G;
MySQL 同步功能由 3 個線程 (master 上 1 個,slave 上 2 個) 來實現(xiàn)。執(zhí)行 DE START SLAVEDE 語句后,slave 就創(chuàng)建一個 I / O 線程。I/ O 線程連接到 master 上,并請求 master 發(fā)送二進制日志中的語句。master 創(chuàng)建一個線程來把日志的內(nèi)容發(fā)送到 slave 上。這個線程在 master 上執(zhí)行 DE SHOW PROCESSLISTDE 語句后的結(jié)果中的 DE Binlog DumpDE 線程便是。slave 上的 I / O 線程讀取 master 的 DE Binlog DumpDE 線程發(fā)送的語句,并且把它們拷貝到其數(shù)據(jù)目錄下的中繼日志 (relay logs) 中。第三個是 SQL 線程,slave 用它來讀取中繼日志,然后執(zhí)行它們來更新數(shù)據(jù)。
用于提供有關(guān)從屬服務(wù)器線程的關(guān)鍵參數(shù)的信息
Slave_IO_State:ID 線程的狀態(tài),如果 master 的所有變更都已經(jīng)收到這個狀態(tài)會顯示為 Waiting for master to send event
Master_Log_File:IO 線程正在讀取的 master binlog 文件名
Read_Master_Log_Pos:IO 線程已經(jīng)讀完的位置
Relay_Master_Log_File:SQL 線程正在讀取的 master binlog 文件名
Exec_Master_Log_Pos:SQL 線程已經(jīng)讀取完的位置
Slave_IO_State:SHOW PROCESSLIST 輸出的 State 字段的拷貝。SHOW PROCESSLIST 用于從屬 I / O 線程。如果線程正在試圖連接到主服務(wù)器,正在等待來自主服務(wù)器的時間或正在連接到主服務(wù)器等,本語句會通知您
日志
日志類型寫入日志的信息錯誤日志記錄在啟動,運行或停止 mysqld 時遇到的問題通用查詢?nèi)罩居涗浗⒌目蛻舳诉B接和執(zhí)行的語句二進制日志記錄更改數(shù)據(jù)的語句中繼日志從復(fù)制主服務(wù)器接收的數(shù)據(jù)更改慢查詢?nèi)罩居涗浰袌?zhí)行時間超過 long_query_time 秒的所有查詢或不使用索引的查詢 DDL 日志(元數(shù)據(jù)日志)元數(shù)據(jù)操作由 DDL 語句執(zhí)行
# mysqlbinlog [options] logfile1 logfile2 ...
mysqlbinlog 的選項
-d, --database=name 僅顯示指定數(shù)據(jù)庫的轉(zhuǎn)儲內(nèi)容。-o, --offset=# 跳過前 N 行的日志條目。-r, --result-file=name 將輸入的文本格式的文件轉(zhuǎn)儲到指定的文件。-R, --read-from-remote-server 指示 mysqlbinlog 命令從遠程服務(wù)器讀取日志文件
-s, --short-form 使用簡單格式(只顯示 SQL 語句)。--server-id 指定 mysql 服務(wù)器,確保是由給定服務(wù)器 id 的 mysql 服務(wù)器所生成的日志。--set-charset=name 在轉(zhuǎn)儲文件的開頭增加 SET NAMES character_set 語句。--start-datetime=name 轉(zhuǎn)儲日志的起始時間。--stop-datetime=name 轉(zhuǎn)儲日志的截止時間。-j, --start-position=# 轉(zhuǎn)儲日志的起始位置。--stop-position=# 轉(zhuǎn)儲日志的截止位置。-v, --verbose 用行事件重構(gòu)偽 sql 語句。
-vv 顯示 sql 語句加字段類型。
查看日志
mysqlbinlog --no-defaults --database=qq --start-datetime= 2022-02-11 18:00:00 --stop-datetime= 2022-02-11 20:00:00 --base64-output=decode-rows -v mysql-bin.000052 18-20.log
增加 –base64-output=decode-rows ndash;v 選項解析 (目的: 變成人類可以讀懂的 SQL 語句了)
使用 base64-output 選項,可以控制輸出語句何時是輸出 base64 編碼的 BINLOG 語句。以下是 base64 輸出設(shè)置的可能值:
never // 它將在輸出中顯示 base64 編碼的 BINLOG 語句
always // 只要有可能,它將只顯示 BINLOG 項
decode-rows // 將把基于行的事件解碼成一個 SQL 語句
auto(默認(rèn)) // 僅為某些事件類型打印 BINLOG 項,例如基于行的事件和格式描述事件
關(guān)于“MySQL 查看數(shù)據(jù)庫狀態(tài)命令是什么”這篇文章的內(nèi)容就介紹到這里,感謝各位的閱讀!相信大家對“MySQL 查看數(shù)據(jù)庫狀態(tài)命令是什么”知識都有一定的了解,大家如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。