mysql 优化

一:索引优化    

1:尽量使用更小的类型,例如邮政编码用char(6) 就可以了。用varchar(6)也是多余的。因为varchar含有字符串长度属性,占用字节。

2: 简单就好:  数据类型越简单越好,例如比较整数的代价小于比较字符

3:尽量避免null,  因为索引时,还有处理null值。

4:选择合适的类型,例如 tinyint,enum等

5:当where或group by中的字段是在覆盖索引中,可以使用连接,先对条件字段的进行索引查询,然后再连接inner join。

6:在where字句中频繁出现的字段

7、频繁在join关联字段中

8:选择性较低的字段不要简历索引

9、不要在常被修改到字段上建索引。

10、不要对仅出现在where从句中的函数或表达式中的字段建索引,要么就建函数索引

11、可考虑在外键上建索引。

12、创建一个索引时,评估该索引给查询带来的性能优化是否比因其而引起INSERT,UPDATE,DELETE操作的性能下降以及索引占用的空间更要值得。

13、复合索引,提高io和选择性。

14:尽量使用一个与业务无关的自增字段作为主键

二:查询优化   https://www.cnblogs.com/exe19/p/5786806.html

https://www.cnblogs.com/wangning528/p/6388538.html

1:不查询不需要的数据 

2:不返回不需要的数据      

三:IO优化

I/O调优

innodb:a:可以控制如何恢复,还可以控制它如何打开表及刷写数据,b:  配置innodb日志大小及入额打开表及刷写数据。批处理(不用每条都及时写入,可以等到一定大小,再写入)

 MyISAM a:设置缓存写入时间,延迟索引的写入

五:并发调优

       innodb: 快照隔离,多版本控制(MVVC)

六: 按照工作负载对mysql进行调优的最有生产率的方式是检查 show global status 的输出,以了解哪些设置需要改变。

可以使用mysqlreport输出日志判断,哪些需要优化 https://www.cnblogs.com/shangzekai/p/4672726.html

 七:每连接设置调优,每条连接需要的数据量,最好不要提前设置好,等需要的时候再设置。用完之后恢复默认就行了。

  八:索引原理:http://blog.jobbole.com/24006/

mysql 优化 配置

https://www.cnblogs.com/thrillerz/p/3907421.html  https://www.cnblogs.com/musings/p/5913157.html

参考:https://www.cnblogs.com/newbalanceteam/p/4947227.html

https://www.aliyun.com/jiaocheng/1111927.html

https://www.cnblogs.com/boothsun/p/6395122.html

http://blog.51cto.com/liu16/1690557

https://www.cnblogs.com/chenpingzhao/p/4776981.html

原文地址:https://www.cnblogs.com/liyafei/p/9576972.html