程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> show processlist結果篩選

show processlist結果篩選

編輯:MySQL綜合教程

show processlist結果篩選   在MySQL裡面   show variables where variable_name like '%auto%' 這條語句可以正常執行,但是   show processlist where host like '%192%' 就會報錯了:   Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘where host like ‘%10%” at line 1   show processlist 直接是可以執行的,但是不能進行篩選,著實讓人頭疼,同樣的結構variables可以,但為什麼就processlist就是不行呢?究其原因原來MySQL有此BUG: Description: SHOW PROCESSLIST lists to many lines when you have 250 or even 1000 users connect to you system.   How to repeat: n.a.   Suggested fix: It would be nice having something like   SHOW PROCESSLIST LIKE ‘user|host|…’   to reduce the output to the relevant informations.   Much more nice would be having something like:   SELECT user, host, time, command, time   FROM [mysql|information_schema].processlist  WHERE user = 'me' and state IS NOT NULL;   所以processlist的show方式是不能使用過濾查找,可能源自MySQL的內部安全機制吧,show是用來查看MySQL內部運行數據,其實processlist就是   information_schema數據庫中的一張表,那麼通過查表的方式肯定是可以的了: SELECT user, host, time, command, time   FROM [mysql|information_schema].processlist  WHERE user = 'me' and state IS NOT NULL; 另附MySQL Show命令的一些詳解,供查閱:   show tables或show tables from database_name或show database_name.tables; 解釋:顯示當前數據庫中所有表的名稱 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 fields; 解釋:顯示表中列名稱(和 desc table_name 命令的效果是一樣的)   show grants for user_name@localhost; 解釋:顯示一個用戶的權限,顯示結果類似於grant 命令   show index from table_name;或show keys; 解釋:顯示表的索引   show status; 解釋:顯示一些系統特定資源的信息,例如,正在運行的線程數量   show variables; 解釋:顯示系統變量的名稱和值   show privileges; 解釋:顯示服務器所支持的不同權限   show create database database_name; 解釋:顯示創建指定數據庫的SQL語句   show create table table_name; 解釋:顯示創建指定數據表的SQL語句   show engies; 解釋:顯示安裝以後可用的存儲引擎和默認引擎。   show innodb status; 解釋:顯示innoDB存儲引擎的狀態   show logs; 解釋:顯示BDB存儲引擎的日志   show warnings; 解釋:顯示最後一個執行的語句所產生的錯誤、警告和通知   show errors; 解釋:只顯示最後一個執行語句所產生的錯誤   上面的大部分命令都可以用like,比如 show table like ‘%abce%’  。   附:   show status 結果說明   列 含義 Name 表名 Type 表的類型 (ISAM,MyISAM或HEAP) Row_format 行存儲格式 (固定, 動態, 或壓縮) Rows 行數量 Avg_row_length 平均行長度 Data_length 數據文件的長度 Max_data_length 數據文件的最大長度 Index_length 索引文件的長度 Data_free 已分配但未使用了字節數 Auto_increment 下一個 autoincrement(自動加1)值 Create_time 表被創造的時間 Update_time 數據文件最後更新的時間 Check_time 最後對表運行一個檢查的時間 Create_options 與CREATE TABLE一起使用的額外選項 Comment 當創造表時,使用的注釋 (或為什麼MySQL不能存取表信息的一些信息)。 show index 結果說明:   列 含義 Table 表名 Non_unique 0,如果索引不能包含重復。 Key_name 索引名 Seq_in_index 索引中的列順序號, 從 1 開始。 Column_name 列名。 Collation 列怎樣在索引中被排序。在MySQL中,這可以有值A(升序) 或NULL(不排序)。 Cardinality 索引中唯一值的數量。這可通過運行isamchk -a更改. Sub_part 如果列只是部分被索引,索引字符的數量。NULL,如果整個鍵被索引。 show variables 結果說明:   Aborted_clients 由於客戶沒有正確關閉連接已經死掉,已經放棄的連接數量。 Aborted_connects 嘗試已經失敗的MySQL服務器的連接的次數。 Connections 試圖連接MySQL服務器的次數。 Created_tmp_tables 當執行語句時,已經被創造了的隱含臨時表的數量。 Delayed_insert_threads 正在使用的延遲插入處理器線程的數量。 Delayed_writes 用INSERT DELAYED寫入的行數。 Delayed_errors 用INSERT DELAYED寫入的發生某些錯誤(可能重復鍵值)的行數。 Flush_commands 執行FLUSH命令的次數。 Handler_delete 請求從一張表中刪除行的次數。 Handler_read_first 請求讀入表中第一行的次數。 Handler_read_key 請求數字基於鍵讀行。 Handler_read_next 請求讀入基於一個鍵的一行的次數。 Handler_read_rnd 請求讀入基於一個固定位置的一行的次數。 Handler_update 請求更新表中一行的次數。 Handler_write 請求向表中插入一行的次數。 Key_blocks_used 用於關鍵字緩存的塊的數量。 Key_read_requests 請求從緩存讀入一個鍵值的次數。 Key_reads 從磁盤物理讀入一個鍵值的次數。 Key_write_requests 請求將一個關鍵字塊寫入緩存次數。 Key_writes 將一個鍵值塊物理寫入磁盤的次數。 Max_used_connections 同時使用的連接的最大數目。 Not_flushed_key_blocks 在鍵緩存中已經改變但是還沒被清空到磁盤上的鍵塊。 Not_flushed_delayed_rows 在INSERT DELAY隊列中等待寫入的行的數量。 Open_tables 打開表的數量。 Open_files 打開文件的數量。 Open_streams 打開流的數量(主要用於日志記載) Opened_tables 已經打開的表的數量。 Questions 發往服務器的查詢的數量。 Slow_queries 要花超過long_query_time時間的查詢數量。 Threads_connected 當前打開的連接的數量。 Threads_running 不在睡眠的線程數量。 Uptime 服務器工作了多少秒。 關於上面的一些注釋:   如果Opened_tables太大,那麼你的table_cache變量可能太小。 如果key_reads太大,那麼你的key_cache可能太小。緩存命中率可以用key_reads/key_read_requests計算。 如果Handler_read_rnd太大,那麼你很可能有大量的查詢需要MySQL掃描整個表或你有沒正確使用鍵值的聯結(join)。  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved