您好,登錄后才能下訂單哦!
這篇文章主要介紹了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語句能夠獲取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ù)值一般遠(yuǎn)低于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ù)器的進(jìn)程狀態(tài)。(MySQL服務(wù)器的線程數(shù)需要在一個合理的范圍之內(nèi),這樣才能保證MySQL服務(wù)器健康平穩(wěn)地運行) 如果我們在MySQL服務(wù)器配置文件中設(shè)置了thread_cache_size,當(dāng)客戶端斷開之后,服務(wù)器處理此客戶的線程將會緩存起來以響應(yīng)下一個客戶而不是銷毀(前提是緩存數(shù)未達(dá)上限)。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, 最大可以達(dá)到16384。 show variables like '%max_connection%'; 查看最大連接數(shù) set global max_connections=200 SET GLOBAL innodb_lru_scan_depth=256; 影響對InnoDB緩沖池進(jìn)行刷新操作的算法和啟發(fā)式的參數(shù)。性能專家對調(diào)優(yōu)I/ o密集型工作負(fù)載感興趣。它指定了每個緩沖池實例,在緩沖池LRU頁面下列出頁面清潔線程掃描以查找要刷新的臟頁的距離。這是每秒執(zhí)行一次的后臺操作。`小于默認(rèn)值的設(shè)置通常適用于大多數(shù)工作負(fù)載`。如果值遠(yuǎn)高于必要值,可能會影響性能。只有在典型工作負(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 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語句
MySQL同步功能由3個線程(master上1個,slave上2個)來實現(xiàn)。執(zhí)行 DE>START SLAVEDE> 語句后,slave就創(chuàng)建一個I/O線程。I/O線程連接到master上,并請求master發(fā)送二進(jìn)制日志中的語句。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)罩?/td> | 記錄建立的客戶端連接和執(zhí)行的語句 |
二進(jìn)制日志 | 記錄更改數(shù)據(jù)的語句 |
中繼日志 | 從復(fù)制主服務(wù)器接收的數(shù)據(jù)更改 |
慢查詢?nèi)罩?/td> | 記錄所有執(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命令從遠(yuǎn)程服務(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 –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)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。