MySql教程

Mysql优化

本文主要是介绍Mysql优化,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

硬件层面

  1、选择IO性能好的服务器;

  2、数据库服务器不要开启其他服务。

数据库层面

  1、加大Mysql缓存大小;

  2、加大max_connections数量,提高并发量

表结构涉及层面

  1、InnoDB基于B+数的特点,大数据量表尽量用自增主键提高读写效率

  2、合理创建索引,重复数据多的或者NULL值的不适合做索引

SQL层面

  主要是基于索引的优化,比如

  1、大批量插入数据,可以按照主键顺序排列,同时可以关闭唯一性校验,改为手动提交事务。

  2、因为mysql的索引是遵循左前缀原则,比如索引a、b、c,只有在查询条件或者group by、order by的字段排序为a,ab,abc时索引才会生效,所以要尽量保证顺序一致。

  3、查询包含group by但是用不需要排序的时候,可以加上order by null 

  4、用具体字段代替select *

  5、关联查询代替子查询

  6、or如果索引失效,可以用union代替

  SQL的优化不限于此,具体的可以查看执行计划,即在sql前面加上explain,查看连接类型,是否走索引等。

架构设计层面

  1、考虑到高可用性,可采用MySQL主从复制+Keepalived做双击热备,常见集群软件有Keepalived、Heartbeat。

  2、读写分离

  3、连接池

  4、缓存机制减轻数据库压力,比如redis等

代码层面

  1、合并SQL,比如insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');

  2、多线程访问数据库。

 

 

 

  

这篇关于Mysql优化的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!