mysql的优化大的有两方面:

mysql的优化大的有两方面:
一、配置优化
  配置的优化其实包含两个方面的:操做系统内核的优化和mysql配置文件的优化 
  1)系统内核的优化对专用的mysql服务器; 2)mysql配置的优化,通常来讲包含:IO处理的经常使用参数、最大链接数设置、缓存使用参数的设置、慢日志的参数的设置、innodb相关参数的设置等
  
二、sql语句的优化
1.尽可能稍做计算
Mysql的做用是用来存取数据的,不是作计算的,作计算的话能够用其余方法去实现,mysql作计算是很耗资源的。
2.尽可能少join
?
 
3.尽可能少排序
  排序操做会消耗较多的CPU资源。对于MySQL来讲,减小排序有多种办法,好比:
  经过利用索引来排序进行优化
  减小参与排序的记录条数
  非必要不对数据进行排序
4.尽可能避免select*
在数据量少而且访问量不大的状况下,select*没有什么影响,可是量级达到必定级别的时候,在执行效率和IO资源的使用上,仍是有很大关系的,用什
么字段取什么字段,减小没必要要的资源浪费。
5.尽可能用join代替子查询
  ?

6.尽可能少 or
使用union all或者是union(必要的时候)的方式来代替or会获得更好的效果。
 
7.尽可能用union all代替union
union和union all的主要差别是前者须要将两个(或者多个)结果集合并后再进行惟一性过滤操做,这就会涉及到排序,增长大量的CPU运算,加大资源
消耗及延迟。因此当咱们能够确认不可能出现重复结果集或者不在意重复结果集的时候,尽可能使用union all而不是union。
 
8.尽可能早过滤
  最多见于索引的优化设计中,将过滤性更好的字段放得更靠前。
在SQL编写中一样可使用这一原则来优化一些Join的SQL。好比咱们在多个表进行分页数据查询的时候,咱们最好是可以在一个表上先过滤好数据
分好页,而后再用分好页的结果集与另外的表Join,这样能够尽量多的减小没必要要的IO操做,大大节省IO操做所消耗的时间。
 
9.优先优化高并发的SQL,而不是执行频率低某些“大”SQL
对于破坏性来讲,高并发的SQL老是会比低频率的来得大,由于高并发的SQL一旦出现问题,甚至不会给咱们任何喘息的机会就会将系统压跨。而对
于一些虽然须要消耗大量IO并且响应很慢的SQL,因为频率低,即便遇到,最多就是让整个系统响应慢一点,但至少可能撑一下子,让咱们有缓冲的机会。
 
10.从全局出发优化,而不是片面调整
SQL优化不能是单独针对某一个进行,而应充分考虑系统中全部的SQL,尤为是在经过调整索引优化SQL的执行计划的时候,千万不能顾此失
彼,因小失大。
 
11.尽量对每一条运行在数据库中的SQL进行explain
相关文章
相关标签/搜索