今天开始学习mysql调优啦 (偶那东一榔头西一棒子的学习历程的又一棒子)
好啦,言归正传:
首先,mysql调优有三个主要的方式,由低到高分别是:
1、硬件调优
2、修改mysql进程
3、优化mysql查询
一、硬件调优
先看看硬件调优吧。这个有两方面你可以考虑,首先对现有硬件条件进行修复,能调整的调整,能替换的替换,例如你可以把中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍。或者你可以替换掉有问题的硬件。其次,如果你的预算没有限制,那么你干脆可以无限制的增加你的服务器。不过这种解决方案也就仅限于此了。
二、修改mysql进程
也就是对mysqld进行调优,对这个进程进行调优意味着适当地分配内存,并让 mysqld
了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。类似地,确保 MySQL 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。
三、查询优化
这个是最好的方法啦,这意味着对表应用了适当的索引,查询是按照可以充分利用 MySQL 功能的方式来编写的。可以配置 mysqld
来报告可能需要进行调优的查询。
如何调优呢,具体方法如下:
[mysqld]
; enable the slow query log, default 10 seconds
log-slow-queries
; log queries taking longer than 5 seconds
long_query_time = 5
; log queries that don't use indexes even if they take less than long_query_time
; MySQL 4.1 and newer only
log-queries-not-using-indexes
下面解释下上面的代码:
mysqldumpslow
,你可以通过此命令来查看慢查询日志 ,例如
[root@ mysql-5.0.37]# mysqldumpslow /data/mysql-db/slow_queries.log -t 10
Reading mysql slow query log from /data/mysql-db/slow_queries.log
Count: 1 Time=763486.00s (763486s) Lock=0.00s (0s) Rows=0.0 (0), *********
SET insert_id=N;
INSERT INTO `nike`.`nike_countlog_index` (`userId`, `action`, `model`, `info`, `cTime`, `ip`, `isRen`)
VALUES ('S', 'S', 'S', 'S', 'S', 'S', 'S')
上面的例子的返回结果被偶删掉啦(为了偶这里的安全哈
