数据库练习四: 优化经常用到的命令

SHOW INDEX

返回表索引信息
SHOW INDEX FROM tbl_name [FROM db_name]
image.png

Table表的名称
Non_unique如果索引不能报货重复词,则为0,可以则为1
Key_name索引的名称
Seq_in_index索引中的列序列号,从1开始
Column_name列名称
Collation列以什么方式存储在索引中。在Mysql中,有值‘A’(升序) 或Null (无分类)
Cardinality索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新。基数根据被存储为整数的统计数据来计数,所以即使对于小型表,该值也没有必要是精确的。基数越大,当进行联合时,MySQL使用该索引的机会就越大。
Sub_part如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。
Packed指示关键字如何被压缩。如果没有被压缩,则为NULL。
Null如果列含有NULL,则含有YES。如果没有,则该列含有NO
Index_type用过的索引方法(BTREE,FULLTEXT,HASH,REREE)
Comment多种评注

show create table

查看建表信息
image.png

show table status

查看表结构信息
image.png

1.Name
表名称
2.Engine:
表的存储引擎
3.Version:
版本
4.Row_format
行格式。对于MyISAM引擎,这可能是Dynamic,Fixed或Compressed。动态行的行长度可变,例如Varchar或Blob类型字段。固定行是指行长度不变,例如Char和Integer类型字段。
5.Rows
表中的行数。对于非事务性表,这个值是精确的,对于事务性引擎,这个值通常是估算的。
6.Avg_row_length
平均每行包括的字节数
7.Data_length
整个表的数据量(单位:字节)
8.Max_data_length
表可以容纳的最大数据量
9.Index_length
索引占用磁盘的空间大小
10.Data_free
对于MyISAM引擎,标识已分配,但现在未使用的空间,并且包含了已被删除行的空间。
11.Auto_increment
下一个Auto_increment的值
12.Create_time
表的创建时间
13.Update_time
表的最近更新时间
14.Check_time
使用 check table 或myisamchk工具检查表的最近时间
15.Collation
表的默认字符集和字符排序规则
16.Checksum
如果启用,则对整个表的内容计算时的校验和
17.Create_options
指表创建时的其他所有选项
18.Comment
包含了其他额外信息,对于MyISAM引擎,包含了注释徐标新,如果表使用的是innodb引擎 ,将现实表的剩余空间。如果是一个视图,注释里面包含了VIEW字样。

show status

查看MySQL服务器当前内存信息。
show [global | session] status [like ‘xxx’];
- global选项,查看mysql所有连接状态
- session选项,查看当前连接状态,默认session选项

1)QPS每秒query量

show global status like 'Question%';

+---------------+----------+

| Variable_name | Value    |

+---------------+----------+

| Questions     | 39661402 |

+---------------+----------+



2)TPS每秒事务量

show global status like 'Com_commit';

+---------------+---------+

| Variable_name | Value   |

+---------------+---------+

| Com_commit    | 8495153 |

+---------------+---------+

show global status like 'Com_rollback';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| Com_rollback  | 0     |

+---------------+-------+



(3)key Buffer 命中率
mysql>show  global   status  like   'key%';

key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%
key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%


(4)InnoDB Buffer命中率
mysql> show status like 'innodb_buffer_pool_read%';

innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%


(5)Query Cache命中率
mysql> show status like 'Qcache%';

Query_cache_hits = (Qcahce_hits / (Qcache_hits + Qcache_inserts )) * 100%;


(6)Table Cache状态量
mysql> show global  status like 'open%';
比较 open_tables  与 opend_tables 值

(7)Thread Cache 命中率
mysql> show global status like 'Thread%';
mysql> show global status like 'Connections';

Thread_cache_hits = (1 - Threads_created / connections ) * 100%



(8)锁定状态
mysql> show global  status like '%lock%';

Table_locks_waited/Table_locks_immediate=0.3%  如果这个比值比较大的话,说明表锁造成的阻塞比较严重
Innodb_row_lock_waits innodb行锁,太大可能是间隙锁造成的


(9)复制延时量
mysql > show slave status
查看延时时间


(10) Tmp Table 状况(临时表状况)
mysql > show status like 'Create_tmp%';

Created_tmp_disk_tables/Created_tmp_tables比值最好不要超过10%,如果Created_tmp_tables值比较大,
可能是排序句子过多或者是连接句子不够优化


(11) Binlog Cache 使用状况
mysql > show status like 'Binlog_cache%';

如果Binlog_cache_disk_use值不为0 ,可能需要调大 binlog_cache_size大小


(12) Innodb_log_waits 量
mysql > show status like 'innodb_log_waits';

Innodb_log_waits值不等于0的话,表明 innodb log  buffer 因为空间不足而等待
13)show variables like '%timeout%';查看连接超时配置

show variables

可以查看系统变量
系统变量实际上用于控制数据库的一些行为和方式的参数。比如我们启动数据库的时候设定多大的内存,使用什么样的隔离级别,日志文件的大小,存放位置等等一系列的东东。当然我们数据库系统启动后,有些系统变量(参数)也可以通过动态修改来及时调整数据库

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值