zoukankan      html  css  js  c++  java
  • MySQL库表状态查询

    一. 查看库的各链接状态

    对于一个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                  |
    +---------+-------------+-------------------+------+---------+------+-------+-----------------------+
    show full processlist

     

    二. 查看存储引擎

    2.1 查看当前库支持的存储引擎

      保存在information_schema.ENGINES表里。

    SHOW ENGINES
    +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
    | Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
    +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
    | PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
    | CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
    | MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
    | BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
    | MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
    | MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
    | ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
    | InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
    | FEDERATED          | NO      | Federated MySQL storage engine                                             | NULL         | NULL | NULL       |
    +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
    结果

    2.2 查看某存储引擎的状态

    SHOW ENGINE INNODB STATUS
    
    =====================================
    2016-01-15 10:12:44 7f4a4c4b6700 INNODB MONITOR OUTPUT
    =====================================
    Per second averages calculated from the last 38 seconds
    -----------------
    BACKGROUND THREAD
    -----------------
    srv_master_thread loops: 1 srv_active, 0 srv_shutdown, 172619 srv_idle
    srv_master_thread log flush and writes: 172620
    ----------
    SEMAPHORES
    ----------
    OS WAIT ARRAY INFO: reservation count 3
    OS WAIT ARRAY INFO: signal count 3
    Mutex spin waits 40, rounds 47, OS waits 1
    RW-shared spins 2, rounds 60, OS waits 2
    RW-excl spins 0, rounds 0, OS waits 0
    Spin rounds per wait: 1.18 mutex, 30.00 RW-shared, 0.00 RW-excl
    ------------
    TRANSACTIONS
    ------------
    Trx id counter 1799
    Purge done for trx's n:o < 0 undo n:o < 0 state: running but idle
    History list length 0
    LIST OF TRANSACTIONS FOR EACH SESSION:
    ---TRANSACTION 0, not started
    MySQL thread id 152, OS thread handle 0x7f4a4c4b6700, query id 137 192.168.122.45 adu_w init
    show engine innodb status
    --------
    FILE I/O
    --------
    I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
    I/O thread 1 state: waiting for completed aio requests (log thread)
    I/O thread 2 state: waiting for completed aio requests (read thread)
    I/O thread 3 state: waiting for completed aio requests (read thread)
    I/O thread 4 state: waiting for completed aio requests (read thread)
    I/O thread 5 state: waiting for completed aio requests (read thread)
    I/O thread 6 state: waiting for completed aio requests (read thread)
    I/O thread 7 state: waiting for completed aio requests (read thread)
    I/O thread 8 state: waiting for completed aio requests (read thread)
    I/O thread 9 state: waiting for completed aio requests (read thread)
    I/O thread 10 state: waiting for completed aio requests (write thread)
    I/O thread 11 state: waiting for completed aio requests (write thread)
    I/O thread 12 state: waiting for completed aio requests (write thread)
    I/O thread 13 state: waiting for completed aio requests (write thread)
    I/O thread 14 state: waiting for completed aio requests (write thread)
    I/O thread 15 state: waiting for completed aio requests (write thread)
    I/O thread 16 state: waiting for completed aio requests (write thread)
    I/O thread 17 state: waiting for completed aio requests (write thread)
    Pending normal aio reads: 0 [0, 0, 0, 0, 0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0, 0, 0, 0, 0] ,
     ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
    Pending flushes (fsync) log: 0; buffer pool: 0
    190 OS file reads, 5 OS file writes, 5 OS fsyncs
    0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
    -------------------------------------
    INSERT BUFFER AND ADAPTIVE HASH INDEX
    -------------------------------------
    Ibuf: size 1, free list len 0, seg size 2, 0 merges
    merged operations:
     insert 0, delete mark 0, delete 0
    discarded operations:
     insert 0, delete mark 0, delete 0
    0.00 hash searches/s, 0.00 non-hash searches/s
    ---
    LOG
    ---
    Log sequence number 1626012
    Log flushed up to   1626012
    Pages flushed up to 1626012
    Last checkpoint at  1626012
    Max checkpoint age    867604194
    Checkpoint age target 840491563
    Modified age          0
    Checkpoint age        0
    0 pending log writes, 0 pending chkp writes
    8 log i/o's done, 0.00 log i/o's/second
    ----------------------
    BUFFER POOL AND MEMORY
    ----------------------
    Total memory allocated 1098907648; in additional pool allocated 0
    Total memory allocated by read views 88
    Internal hash tables (constant factor + variable factor)
        Adaptive hash index 18926128 	(18921928 + 4200)
        Page hash           139112 (buffer pool 0 only)
        Dictionary cache    4487029 	(4426736 + 60293)
        File system         815920 	(812272 + 3648)
        Lock system         2657536 	(2657176 + 360)
        Recovery system     0 	(0 + 0)
    Dictionary memory allocated 60293
    Buffer pool size        65528
    Buffer pool size, bytes 1073610752
    Free buffers            65354
    Database pages          174
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 174, created 0, written 1
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 174, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ----------------------
    INDIVIDUAL BUFFER POOL INFO
    ----------------------
    ---BUFFER POOL 0
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8159
    Database pages          32
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 32, created 0, written 1
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 32, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 1
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8187
    Database pages          4
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 4, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 4, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 2
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8187
    Database pages          4
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 4, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 4, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 3
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8123
    Database pages          68
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 68, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 68, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 4
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8129
    Database pages          62
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 62, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 62, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 5
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8187
    Database pages          4
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 4, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 4, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 6
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8191
    Database pages          0
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 0, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 0, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    ---BUFFER POOL 7
    Buffer pool size        8191
    Buffer pool size, bytes 134201344
    Free buffers            8191
    Database pages          0
    Old database pages      0
    Modified db pages       0
    Pending reads 0
    Pending writes: LRU 0, flush list 0, single page 0
    Pages made young 0, not young 0
    0.00 youngs/s, 0.00 non-youngs/s
    Pages read 0, created 0, written 0
    0.00 reads/s, 0.00 creates/s, 0.00 writes/s
    No buffer pool page gets since the last printout
    Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
    LRU len: 0, unzip_LRU len: 0
    I/O sum[0]:cur[0], unzip sum[0]:cur[0]
    --------------
    ROW OPERATIONS
    --------------
    0 queries inside InnoDB, 0 queries in queue
    0 read views open inside InnoDB
    0 RW transactions active inside InnoDB
    0 RO transactions active inside InnoDB
    0 out of 1000 descriptors used
    Main thread process no. 3572, id 139955545581312, state: sleeping
    Number of rows inserted 0, updated 0, deleted 0, read 0
    0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
    ----------------------------
    END OF INNODB MONITOR OUTPUT
    ============================
    结果

     

    二. 查看表状态

    2.1 单表详情

    数据库各表的信息都保存在INFORMATION_SCHEMA-->TABLES表里。可以直接在此表查询也可以通过SHOW TABLE STATUS命令来查询。

    SHOW TABLE STATUS LIKE 'user'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)
    

      

    通过查询资料发现需要设置collate(校对) 。 collate规则:
    • *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的
    • *_cs: case sensitive collation,区分大小写
    • *_ci: case insensitive collation,不区分大小写

    2.2 各表的占用空间大小

    SELECT
    	CONCAT(table_schema,'.',table_name) AS 'Table Name',
    	table_rows AS 'Number of Rows',
    	CONCAT(ROUND(data_length/(1024*1024),3),' MB') AS 'Data Size',
    	CONCAT(ROUND(index_length/(1024*1024),3),' MB') AS 'Index Size',
    	CONCAT(ROUND((data_length+index_length)/(1024*1024),3),' MB') AS 'Total Size'
    FROM
    	information_schema.TABLES
    WHERE
    	table_schema = 'db_name' AND table_name = 'table_name';
    

      

    三. 查看执行计划

    EXPLAIN sql...
    explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。

    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 只检索给定范围的行,包括如下操作符: =, <>, >, >=, <, <=, IS NULL, <=>, 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子句里的条件进行检索操作

      

  • 相关阅读:
    【HDU1698】 Just a Hook 【线段树入门】
    【转载】线段树 区间合并 小结
    Codeforces 1138B(列方程枚举)
    Codeforces 1132G(关系转化树+dfn+线段树)
    Codeforces 1132E(转化+dp)
    Codeforces 1132D(二分模拟)
    Codeforces 1131G(dp)
    洛谷1941(dp)
    洛谷2758(字符串dp)
    Codeforces 1143B(思维、技巧)
  • 原文地址:https://www.cnblogs.com/waterystone/p/5086012.html
Copyright © 2011-2022 走看看