mysql优化思路

为什么别人问你MySQL优化的知识 总是没有底气, 因为你只是回答一些大而化之的调优原则, 比如:

1、”建立合理索引”(什么样的索引合理?)

2、“分表分库”(用什么策略分表分库?)

3、“主从分离”(用什么中间件?)

并没有从细化到定量的层面去分析.

如qps提高了%N? 有没有减少文件排序?语句的扫描行数减少了多少?没有大量的数据供测试,一般在学习环境中,只是手工添加几百上万条数据,数据量小,看不出语句之间的明确区别.

 如何提高MySQL的性能?

 需要优化,则说明效率不够理想.,因此我们首先要做的,不是优化,而是---诊断.

治病的前提,是诊病,找出瓶颈所在. CPU,内存,IO? 峰值,单条语句?

辅助工具awk

awk脚本使用:awk ‘{printf("%s\n",$0)}’ score.txt

查看问题是否是周期性故障或波动------>一般由访问高峰或缓存崩溃引起,加缓存并更改缓存失效策略,使缓存失效时间分散或夜间定时失效。

mysql常用语句:

show processlist;

show status;

如果还有问题,那么可以通过show processlist命令或者开启慢查询获取有问题的sql,然后通过profiling分析语句或者explain语句分析问题。

什么情况下产生临时表

1、group by的列和order by的列不同时,两表查询时,取a表的内容,group/order by另外表的列

2、distinct和order by一起使用时

3、开启了sql_small_restult选项

什么情况下临时表写在磁盘上

1、取出的列含有text/blob类型时,内存表存储不了text/blob类型

2、在group by或distinct的列中存在>512字节的string列

3、select中含有>512字节的string列,同时又使用了union或union all语句。


mysql5.0以后新增了一个小功能,就是profiles功能

首先执行    set profiling=on;  以后你所执行的语句mysql都会给你记录下来,可以通过  show profiles 命令查看你所执行的命令。

然后可以根据 show profile for query 命令id  查看命令执行的过程。具体执行过程如下:

mysql> set profiling=on
    -> ;
Query OK, 0 rows affected

mysql> show profiles;
Empty set

mysql> select * from ry;
+----+-------+-------+------+
| id | mz    | gz    | mcid |
+----+-------+-------+------+
|  1 | Joe   | 70000 |    1 |
|  2 | Henry | 80000 |    2 |
|  3 | Sam   | 60000 |    2 |
|  4 | Max   | 90000 |    1 |
|  5 | Janet | 69000 |    1 |
|  6 | Randy | 85000 |    1 |
|  7 | JACK  | 85000 |    1 |
+----+-------+-------+------+
7 rows in set

mysql> show profiles;
+----------+------------+------------------+
| Query_ID | Duration   | Query            |
+----------+------------+------------------+
|        1 | 0.00070325 | select * from ry |
+----------+------------+------------------+
1 row in set

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值