MySql调优

1:前言

MySQL的优化能够提高网站的效率,我相信谁也不想自己的网站或者系统出现CPU:100%,内存:100%这样的峰值,优化成为我们至关重要的一点,在一家小型公司的打(pian)杂(chen)时候,让我有机会了解到MySQL的调优;了解到了服务器调优前后的速度是多么不同.在此,我以的经历做下总结.

2:优化的过程:

1:使用Show Status命令来查看数据库到底是读得多还是写得多?

我一般都会使用: show status like “com_select%”等命令来查看是读得多还是写得多.

2:数据库引擎的选择:

InnoDB:事务支持 外键支持 查询效率相对较慢!(我的猜测是因为它的空间分配问题)

Myisam:查询速度那是相当快的,这是,我一般的选择.(有人说不支持外键呀,而且锁定也是表级锁呀;说白了就说没钱);

对于,读的数据库类型不考虑事务和外键,应该马上切换到Myisam.性能提高非常快.

3:慢查询日志:

慢查询日志是一个非常好用的东西,先来看下它的使用步奏.

1.查看是否开启:

image_thumb

2.开启慢查询日志:

要在my.ini(linux:my.cnf),加上 log_slow_queries = slow.log; 和 log_query_time = 10;(界定什么查询多少秒是慢查询).这样,每次查询日志就会把超过指定时间的语句写进到慢查询日志.

4:找到慢查询的语句进行分析:

我一般用desc命令来分析一条语句,如下图:(desc select语句)

image_thumb1

5:找到相应的语句来处理:

一般,情况都是加上索引处理;

6: Handler_read_key和Handler_read_rnd_next:

image_thumb3

如图分析,可以发现Handler_read_key越高越好(索引用得多).反之,Handler_read_rnd_next越低越好.

7:其他细节思维导图如下

 

MySQL_thumb1

MySQL2_thumb

8:结束语:

MySQL调优是很大学问,而这个很大的学问在大型网站的下面又是一个很小的学问,上面的只是我个人总结的调优基础.谢谢

原文地址:https://www.cnblogs.com/courtier/p/4311889.html