mysql 查询从库状态_Mysql库表状态查询
1. 查看庫的各鏈接狀態 對于一個mysql連接或者一個線程,任何時刻都有一個狀態,表示其當前正在做什么。一般使用show full processlist查看。
+---------+-------------+-------------------+------+---------+------+-------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info |
+---------+-------------+-------------------+------+---------+------+-------+-----------------------+
| 2547225 | operator@RR | 10.3.18.205:60253 | fb | Query | 0 | NULL | show full processlist |
| 2548100 | operator@RR | 10.4.19.83:51754 | fb | Sleep | 1 | | NULL |
| 2548101 | operator@RR | 10.4.19.83:53661 | fb | Sleep | 1 | | NULL |
| 2548102 | operator@RR | 10.4.19.83:45808 | fb | Sleep | 1 | | NULL |
| 2548103 | operator@RR | 10.4.19.83:58881 | fb | Sleep | 1 | | NULL |
| 2548104 | operator@RR | 10.4.19.83:33521 | fb | Sleep | 1 | | NULL |
+---------+-------------+-------------------+------+---------+------+-------+-----------------------+
2. 查看表狀態
數據庫各表的信息都保存在INFORMATION_SCHEMA-->TABLES表里??梢灾苯釉诖吮聿樵円部梢酝ㄟ^SHOW TABLE STATUS命令來查詢。
SHOW TABLE STATUS LIKE 'user' WHERE id = 1 \G;
結果:
*************************** 1. row ***************************
Name: user(表名)
Engine: InnoDB(存儲引擎)
Version: 10
Row_format: Compact(行的格式,是否固定或壓縮)
Rows: 4(行數,對于MyISAM該值是精確的,但對于InnoDB該值是估計值)
Avg_row_length: 4096(平均每行的字節數)
Data_length: 16384(表數據總的字節數)
Max_data_length: 0(表數據的最大容量,和存儲引擎有關)
Index_length: 0(索引的大小B)
Data_free: 7340032(對于MyISAM表示已分配但沒有使用的空間)
Auto_increment: 5(下一個AUTO_INCREMENT值)
Create_time: 2014-06-17 16:45:53(表的創建時間)
Update_time: NULL(表數據的最后修改時間)
Check_time: NULL(使用CHECK TABLE或myisamchk檢查表的時間)
Collation: utf8_bin(表的默認字符集和字符列排序規則)
Checksum: NULL(整個表的實時檢驗和)
Create_options: (創建表時指定的其他選項)
Comment:
1 row in set (0.00 sec)
3. 查看SQL語句執行情況 EXPLAIN sql...
explain顯示了mysql如何使用索引來處理select語句以及連接表??梢詭椭x擇更好的索引和寫出更優化的查詢語句。
EXPLAIN SELECT id FROM user WHERE id=1 \G;
結果:
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: user
type: const
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: const
rows: 1
Extra: Using index
1 row in set (0.02 sec)
列名
類型
解釋
id
SELECT語句的ID編號,優先執行編號較大的查詢,如果編號相同,則從上向下執行
select_type
SIMPLE
一條沒有UNION或子查詢部分的SELECT語句
PIMARY
最外層或最左側的SELECT語句
UNION
UNION語句里的第二條或最后一條SELECT語句
DEPENDENT UNION
和UNION類型的含義相似,但需要依賴于某個外層查詢
UNION RESULT
一條UNION語句的結果
SUBQUERY
子查詢中的第一個SELECT子句
DEPENDENT SUBQUERY
和SUBQUERY類型的含義相似,但需要依賴于某個外層查詢
DERIVED
FROM子句里的子查詢
table
t1
各輸出行里的信息是關于哪個數據表的
Partitions
NULL
將要使用的分區.只有EXPLAIN PARTITIONS ...語句才會顯示這一列.非分區表顯示為NULL
type
聯接操作的類型,性能由好到差依次如下
system
表中僅有一行
const
單表中最多有一個匹配行
eq_ref
聯接查詢中,對于前表的每一行,在此表中只查詢一條記錄,使用了PRIMARY或UNIQUE
ref
聯接查詢中,對于前表的每一行,在此表中只查詢一條記錄,使用了INDEX
ref_or_null
聯接查詢中,對于前表的每一行,在此表中只查詢一條記錄,使用了INDEX,但是條件中有NULL值查詢
index_merge
多個索引合并
unique_subquery
舉例說明: value IN (SELECT primary_key FROM single_table WHERE some_expr)
index_subquery
舉例說明: value IN (SELECT key_column FROM single_table WHERE some_expr)
range
只檢索給定范圍的行,包括如下操作符: =, <>, >, >=, , BETWEEN, or IN()
index
掃描索引樹(略比ALL快,因為索引文件通常比數據文件小)
ALL
前表的每一行數據都要跟此表匹配,全表掃描
possible_keys
NULL
MySQL認為在可能會用到的索引.NULL表示沒有找到索引
key
NULL
檢索時,實際用到的索引名稱.如果用了index_merge聯接類型,此時會列出多個索引名稱,NULL表示沒有找到索引
key_len
NULL
實際使用的索引的長度.如果是復合索引,那么只顯示使用的最左前綴的大小
ref
NULL
MySQL用來與索引值比較的值, 如果是單詞const或者???,則表示比較對象是一個常數.如果是某個數據列的名稱,則表示比較操作是逐個數據列進行的.NULL表示沒有使用索引
rows
MySQL為完成查詢而需要在數據表里檢查的行數的估算值.這個輸出列里所有的值的乘積就是必須檢查的數據行的各種可能組合的估算值
Extra
Using filesort
需要將索引值寫到文件中并且排序,這樣按順序檢索相關數據行
Using index
MySQL可以不必檢查數據文件, 只使用索引信息就能檢索數據表信息
Using temporary
在使用 GROUP BY 或 ORDER BY 時,需要創建臨時表,保存中間結果集
Using where
利用SELECT語句中的WHERE子句里的條件進行檢索操作
總結
以上是生活随笔為你收集整理的mysql 查询从库状态_Mysql库表状态查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql特有语法_MySQL详细的基础
- 下一篇: oracle数据库多表联查并排序,ora