1:前言
MySQL的优化能够提高网站的效率,我相信谁也不想自己的网站或者系统出现CPU:100%,内存:100%这样的峰值,优化成为我们至关重要的一点,在一家小型公司的打(pian)杂(chen)时候,让我有机会了解到MySQL的调优;了解到了服务器调优前后的速度是多么不同.在此,我以的经历做下总结.
2:优化的过程:
1:使用Show Status命令来查看数据库到底是读得多还是写得多?
我一般都会使用: show status like “com_select%”等命令来查看是读得多还是写得多.
2:数据库引擎的选择:
InnoDB:事务支持 外键支持 查询效率相对较慢!(我的猜测是因为它的空间分配问题)
Myisam:查询速度那是相当快的,这是,我一般的选择.(有人说不支持外键呀,而且锁定也是表级锁呀;说白了就说没钱);
对于,读的数据库类型不考虑事务和外键,应该马上切换到Myisam.性能提高非常快.
3:慢查询日志:
慢查询日志是一个非常好用的东西,先来看下它的使用步奏.
1.查看是否开启:
2.开启慢查询日志:
要在my.ini(linux:my.cnf),加上 log_slow_queries = slow.log; 和 log_query_time = 10;(界定什么查询多少秒是慢查询).这样,每次查询日志就会把超过指定时间的语句写进到慢查询日志.
4:找到慢查询的语句进行分析:
我一般用desc命令来分析一条语句,如下图:(desc select语句)
5:找到相应的语句来处理:
一般,情况都是加上索引处理;
6: Handler_read_key和Handler_read_rnd_next:
如图分析,可以发现Handler_read_key越高越好(索引用得多).反之,Handler_read_rnd_next越低越好.
7:其他细节思维导图如下
8:结束语:
MySQL调优是很大学问,而这个很大的学问在大型网站的下面又是一个很小的学问,上面的只是我个人总结的调优基础.谢谢