mysq性能优化,摘下来慢慢看

本文提供了MySQL性能优化的方法,包括使用explain检查SQL、开启慢查询日志、监视当前进程及使用系统命令检查MySQL进程资源占用等。同时介绍了在建表时指定使用InnoDB引擎的重要性,并给出了在非繁忙时段执行数据导出等操作的建议。

一些实例方面的讲解,所用到的一些地方
http://www.jb51.net/article/18164.htm

提供一些建议性的优化方法
http://blog.sina.com.cn/s/blog_7be8a2150100tni3.html
比较详细的介绍性能方面的一些基础知识,可以作为常考文档
http://www.360doc.com/content/10/0821/22/2159920_47802856.shtml
 ps:以下摘抄一些段落

 1.善用explain(desc 也可):
  设计SQL后,应使用explain命令检查SQL,看是否使用到索引,是否存在filesort,重点检查检索的行数(rows)是否太大。 一般来说. rows<1000,是在可接受的范围内的 . rows在1000~1w之间,在密集访问时可能导致性能问题,但如果不是太频繁的访问(频率低于1分钟一次),又难再优化的话,可以接受,但需要注意观察 ows大于1万时,应慎重考虑SQL的设计,优化SQL,优化db,一般来说不允许频繁运行(频率低于1小时一次)。 ows达到10w级别时,坚决不能做为实时运行的SQL。但导数据场合除外,但导数据必须控制好时间,频度。

     explain SQL语句应该是日常开发中的习惯动作,有时explain出来的结果,可能会出于偏离设计的意料之外,所以强烈建议在设计SQL,尤其是稍微复杂的SQL时,一定要在测试环境甚至是实际环境上预先进行explain
2.MySQL慢查询日志
  一般应打开MySQL的慢查询日志(在my.cnf中加入log_slow_queries和long_query_time两个参数),会记录所有查询持续时间超过long_query_time的SQL语句,把这些语句log下来之后,再一一分析(explain)优化。

3.监视当前进程
  登陆MySQL,使用show processlist查看正在运行的SQL语句,如果正在运行的语句太多,运行时间太长,表示MySQL效率有问题。必要的时候可以将对应的进程kill掉。
4.系统命令
  使用top/vmstat等系统命令来检查MySQL进程占用的cpu,内存,以及磁盘IO量。
5.其他
    建表时,显式指定使用innodb数据库引擎
导出数据等可能引起批量数据读取的操作,应建立定时任务,在数据库不繁  忙的时段(凌晨1~7时)运行一般的统计操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值