MySQL中show语法使用总结
MySQL中 show 語法的使用:
先查看MySQL版本信息: mysql> select version(); +------------+ | version() | +------------+ | 5.6.16-log | +------------+ 1 row in set (0.00 sec)幫助查看:
mysql> help show mysql> help SHOW TABLE; mysql> help SHOW WARNINGS1.顯示mysql中所有數據庫的名稱.
mysql>show databases;2.顯示當前數據庫中所有表的名稱
mysql>show tables; 或 mysql>show tables from database_name;3.顯示表中列名稱
mysql>show columns from database_name.table_name;4.查看某MySQL用戶的使用權限
mysql>show grants for user_name;5.顯示create database 語句是否能夠創建指定的數據庫,并可以查看到創建庫語句的SQL信息。
mysql>show create database database_name;6.顯示create table 語句是否能夠創建指定的數據表,并可以查看到表創建語句的SQL信息。
mysql>show create table table_name;7.顯示安裝以后可用的存儲引擎和默認引擎。
mysql>show engines;8.顯示最后一個執行的語句所產生的錯誤、警告和通知
mysql> show warnings;9.只顯示最后一個執行語句所產生的錯誤
mysql>show errors;10.顯示系統中正在運行的所有進程,也就是當前正在執行的查詢.
mysql> show processlist\G11.查看所有存儲過程。
mysql> show procedure status;12.查看某個存儲過程內容
show create procedure 存儲過程名稱;13.查看函數的內容.
show create function func_name;......
由于這幾個show指令的參數太多,這里單獨進行解析.
使用 show status 查看MySQL服務器狀態信息.
? ? ? 有些時候我們需要了解MySQL的服務器狀態信息,譬如當前MySQL啟動后的運行時間,當前MySQL的客戶端會話連接數,當前MySQL服務器執行的慢查詢數,當前MySQL執行了多少SELECT語句、執行了多少UPDATE/DELETE/INSERT語句等統計信息,從而便于我們根據當前MySQL服務器的運行狀態進行對應的調整或優化工作。
? ? ? 在MySQL中,我們可以使用SHOW STATUS指令語句來查看MySQL服務器的狀態信息。下面,我們以DOS命令窗口的形式連接MySQL,并執行show status;指令,我們將看到如下顯示信息:
---執行show status指令顯示的部分結果--- +-----------------------------------------------------------------+--------------------------+ | Variable_name | Value | +-----------------------------------------------------------------+--------------------------+ | Aborted_clients | 737 | Tokudb_FILESYSTEM_PREAD_NUM | 16 | | Tokudb_FILESYSTEM_PREAD_BYTES | 8192 | | Tokudb_FILESYSTEM_LONG_PREAD_TIME | 0 | | Tokudb_FILESYSTEM_LONG_PREAD_NUM | 0 | | Uptime | 2697503 | | Uptime_since_flush_status | 2697503? ? ?當我們執行show status語句時,MySQL將會列出多達300多條的狀態信息記錄,其中包括了供我們查看了解的各種信息。不過,如果直接使用show status指令得到300多條記錄,會讓我們看得眼花繚亂,因此我們希望能夠按需查看一部分狀態信息。這個時候,我們可以在show status語句后加上對應的like子句。
例如:
--查詢當前MySQL本次啟動后的運行統計時間.
mysql> show status like 'uptime'; +---------------+---------+ | Variable_name | Value | +---------------+---------+ | Uptime | 2698122 | +---------------+---------+ 1 row in set (0.00 sec)--查詢本次MySQL啟動后執行的SELECT語句的次數.
mysql> show status like 'com_select'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | Com_select | 2 | +---------------+-------+ 1 row in set (0.00 sec)? ? ? 此外,與WHERE子句中的LIKE關鍵字類似,show status后的LIKE關鍵字也可以使用'_' 或'%'等通配符來進行模糊匹配。例如我們可以執行如下語句來查看MySQL服務器的線程信息:
mysql> show status like 'Thread_%'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | Threadpool_idle_threads | 0 | | Threadpool_threads | 0 | | Threads_cached | 11 | | Threads_connected | 1 | | Threads_created | 15 | | Threads_rejected | 0 | | Threads_running | 3 | +-------------------------+-------+ 7 rows in set (0.00 sec)? ? ? 值得注意的是,在上述show status like 'com_select'指令的執行示例中,顯示的SELECT語句統計信息僅僅表示當前會話連接執行的SELECT語句數量。因為,show status指令的完整語法如下:
SHOW [統計范圍] STATUS [LIKE '狀態項名稱'] --統計范圍關鍵字分為GLOBAL和SESSION(或LOCAL)兩種。? ? ? 在show status的完整語法中,"[]"中的部分是可選的,如果我們的show status語句中不包含統計范圍關鍵字,則默認統計范圍為SESSION,也就是只統計當前連接的狀態信息。如果我們需要查詢自當前MySQL啟動后所有連接執行的SELECT語句總數,我們可以執行如下語句:
mysql> show global status like 'com_select';以上即是show status的詳細用法。由于show status的狀態統計項較多,我們就不再一一解釋每個統計項的具體含義,在這里,我們僅列出部分常用的狀態信息查看語句:
--查看MySQL本次啟動后的運行時間(單位:秒) show status like 'uptime';--查看select語句的執行數 show [global] status like 'com_select';--查看insert語句的執行數 show [global] status like 'com_insert';--查看update語句的執行數 show [global] status like 'com_update';--查看delete語句的執行數 show [global] status like 'com_delete';--查看試圖連接到MySQL(不管是否連接成功)的連接數 show status like 'connections';--查看線程緩存內的線程的數量。 show status like 'threads_cached';--查看當前打開的連接的數量。 show status like 'threads_connected';--查看當前打開的連接的數量。 show status like 'threads_connected';--查看創建用來處理連接的線程數。如果Threads_created較大,你可能要增加thread_cache_size值。 show status like 'threads_created';--查看激活的(非睡眠狀態)線程數。 show status like 'threads_running';--查看立即獲得的表的鎖的次數。 show status like 'table_locks_immediate';--查看不能立即獲得的表的鎖的次數。如果該值較高,并且有性能問題,你應首先優化查詢,然后拆分表或使用復制。 show status like 'table_locks_waited';--查看創建時間超過slow_launch_time秒的線程數。 show status like 'slow_launch_threads';--查看查詢時間超過long_query_time秒的查詢的個數。 show status like 'slow_queries';?使用 SHOW INDEX 語法 查看表的索引狀態
語法:
SHOW INDEX FROM [tb_name]執行后結果如下:
mysql> SHOW INDEX FROM l_yy\G *************************** 1. row ***************************Table: l_yyNon_unique: 0Key_name: PRIMARYSeq_in_index: 1Column_name: idCollation: ACardinality: 8556Sub_part: NULLPacked: NULLNull: Index_type: BTREEComment: Index_comment: 1 row in set (0.00 sec)show index 返回字段解析:
· Table表的名稱。· Non_unique 如果索引不能包括重復詞,則為0。如果可以,則為1。 · Key_name索引的名稱。 · Seq_in_index索引中的列序列號,從1開始?!?Column_name列名稱。· Collation 列以什么方式存儲在索引中。在MySQL中,有值‘A’(升序)或NULL(無分類).· Cardinality索引中唯一值的數目的估計值。通過運行ANALYZE TABLE或myisamchk -a可以更新.· Sub_part 如果列只是被部分地編入索引,則為被編入索引的字符的數目。如果整列被編入索引,則為NULL?!?Packed 指示關鍵字如何被壓縮。如果沒有被壓縮,則為NULL?!?Null 如果列含有NULL,則含有YES。如果沒有,則該列含有NO?!?Index_type用過的索引方法(BTREE, FULLTEXT, HASH, RTREE)。· Comment 多種評注。show variables用于顯示mysql服務器變量。
mysqld服務維護兩種變量。全局變量影響服務器的全局操作。會話變量影響具體客戶端連接相關操作。
通過連接服務器并執行SET GLOBAL var_name語句可以更改動態全局變量。要想更改全局變量,必須具有SUPER權限,重啟mysql服務后失效.
通過SET SESSION var_name語句來更改動態會話變量.但客戶可以只更改自己的會話變量,而不更改其它客戶的會話變量,退出終端后更改失效.
SHOW VARIABLES通常結合like使用,具體用法如下:
1.查看全局字符集
mysql> show global variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)mysql> SHOW VARIABLES LIKE 'collation_%'; +----------------------+-------------------+ | Variable_name | Value | +----------------------+-------------------+ | collation_connection | utf8_general_ci | | collation_database | latin1_swedish_ci | | collation_server | latin1_swedish_ci | +----------------------+-------------------+ 3 rows in set (0.00 sec) 2.查看當前錯誤日志配置: mysql> show global variables like '%log_err%'; +---------------------+---------------------------------+ | Variable_name | Value | +---------------------+---------------------------------+ | binlog_error_action | IGNORE_ERROR | | log_error | /usr/local/mysql/logs/error.log | +---------------------+---------------------------------+ 2 rows in set (0.00 sec)3.查看二進制日志是否開啟.
mysql> show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_bin | OFF | +---------------+-------+ 1 row in set (0.00 sec)4.查看mysql的連接數.
mysql> show variables like '%connections%'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | max_connections | 151 | | max_user_connections | 0 | +----------------------+-------+ 2 rows in set (0.00 sec) 5.查看二進制日志的存儲格式 mysql> show variables like 'binlog_format'; +---------------+-----------+ | Variable_name | Value | +---------------+-----------+ | binlog_format | STATEMENT | +---------------+-----------+ 1 row in set (0.00 sec)本處以更改日志格式的操作來說明set變量的使用
set global binlog_format=mixed; //全局更改,數據庫重啟后失效 set session binlog_format=mixed; //客戶端更改,退出終端后失效.?
更多使用以后慢慢整理和添加
?
參考文檔:http://www.365mini.com/page/mysql-show-status.htm
??http://www.ttlsa.com/mysql/mysql_show_status_descriptsions/
http://blog.oldboyedu.com/mysql-optimization/
? ? ? ? ? ? ? http://baike.xsoftlab.net/view/218.html
?
轉載于:https://www.cnblogs.com/saneri/p/6963583.html
總結
以上是生活随笔為你收集整理的MySQL中show语法使用总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 精通JavaScript--01面向对象
- 下一篇: 豆角怎么做好吃 美味可口的豆角烹饪技巧?