Mysql 维护的一点整理

整理了下mysql在优化方面相关的命令:


show session| global status like 'Com_%'  默认是查看session级别的状态参数
表示某个语句执行的次数,包含所有的存储引擎的操作记录
Com_select 
Com_update
Com_insert
Com_delete


下面这些参数仅显示Innodb的操作记录
Innodb_rows_read
Innodb_rows_inserted
Innodb_rows_updated
Innodb_rows_deleted


show status like 'Connections';
show status like 'Uptime';
show status like 'Slow_queries';


--log-slow-queries=[file_name]
时间超过long_query_time
show procssslist;


show variables like '%' 查看某个变量的值
mysqld --verbose --help | more 查看mysql各个变量的解析




myisam 表的数据文件和日志文件是分开存储的,独立成文件
Innodb  表的数据和索引存储在同一个表空间里,可以由多个文件组成


Handler_read_key (一行被索引读取的次数) 如果正在使用索引,这个值会高
Handler_read_rnd_next (在数据文件中读取下一行的请求次数) 如果这个值高,需要建立索引来优化性能


mysql> show status like 'Handler_read%';
+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| Handler_read_first    | 0     |
| Handler_read_key      | 0     |
| Handler_read_last     | 0     |
| Handler_read_next     | 0     |
| Handler_read_prev     | 0     |
| Handler_read_rnd      | 0     |
| Handler_read_rnd_next | 0     |
+-----------------------+-------+
7 rows in set (0.00 sec)


analyze table 分析和存储关键字分布,分析后将会得到准确的统计信息
mysql> analyze table boss_info;
+---------------+---------+----------+----------+
| Table         | Op      | Msg_type | Msg_text |
+---------------+---------+----------+----------+
| doh.boss_info | analyze | status   | OK       |
+---------------+---------+----------+----------+
1 row in set (0.05 sec)


check table 检测一个或多个表是否存在错误
mysql> check table boss_info;
+---------------+-------+----------+----------+
| Table         | Op    | Msg_type | Msg_text |
+---------------+-------+----------+----------+
| doh.boss_info | check | status   | OK       |
+---------------+-------+----------+----------+
1 row in set (0.01 sec)


optimize table 优化表,可以对表空间的磁盘碎片进行整理
mysql> optimize table boss_info;
+---------------+----------+----------+----------+
| Table         | Op       | Msg_type | Msg_text |
+---------------+----------+----------+----------+
| doh.boss_info | optimize | status   | OK       |
+---------------+----------+----------+----------+
1 row in set (0.08 sec)


上面的命令会进行表锁定,应在系统不繁忙的时候执行。


show index from boss_info;查看表中的索引信息


使用hint


使用指定的索引
mysql> explain select * from boss_info use index(PRIMARY) where id =3;
+----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type | table     | type  | possible_keys | key     | key_len | ref   | rows | Extra |
+----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
|  1 | SIMPLE      | boss_info | const | PRIMARY       | PRIMARY | 4       | const |    1 |       |
+----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
1 row in set (0.02 sec)


不使用指定的索引
mysql> explain select * from boss_info ignore index(PRIMARY) where id =3;
+----+-------------+-----------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table     | type | possible_keys | key  | key_len | ref  | rows | Extra       |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------------+
|  1 | SIMPLE      | boss_info | ALL  | NULL          | NULL | NULL    | NULL |   16 | Using where |
+----+-------------+-----------+------+---------------+------+---------+------+------+-------------+
1 row in set (0.00 sec)


强制使用指定的索引
mysql> explain select * from boss_info force index(PRIMARY) where id =3;
+----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
| id | select_type | table     | type  | possible_keys | key     | key_len | ref   | rows | Extra |
+----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
|  1 | SIMPLE      | boss_info | const | PRIMARY       | PRIMARY | 4       | const |    1 |       |
+----+-------------+-----------+-------+---------------+---------+---------+-------+------+-------+
1 row in set (0.00 sec)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值