1.配置优化
配置优化实际上包括两个方面:操作系统内核的优化和mysql配置文件的优化
1)系统内核的优化无非是针对专用mysql服务器的内存效用、连接数、超时处理、TCP处理等等的优化,根据自身硬件配置进行优化,这里不做讨论;
2)2)MySQL配置的优化一般包括:IO处理的常用参数、最大连接数的设置、缓存使用参数的设置、慢日志参数的设置、innodb相关参数的设置等。如果有主从关系,可以设置主从同步的相关参数。网上有很多相关的配置文件,都差不多。修改大部分常用设置就差不多了。
2.sql语句的优化
1、尽量做一点计算
Mysql的功能是访问数据,而不是做计算。如果做计算,可以用其他方法来实现。mysql非常消耗资源。
2.尽量少加入
MySQL的优点是简单,但也是它在某些方面的缺点。MySQL优化器效率较高,但由于统计信息量有限,优化器工作过程中出现偏差的可能性更大。对于复杂的多表Join,一方面是因为其优化器有限,另一方面是Join上的功夫不够,所以性能还是和Oracle等关系数据库的前辈相差甚远。但是如果是简单的单表查询,差距会很小,甚至在某些场景下,比这些数据库前辈还要好。
3.尽可能少排序
排序操作会消耗更多的CPU资源,因此在缓存命中率高、io能力充足的场景下,减少排序会极大地影响SQL的响应时间。
对于MySQL,减少排序的方法有很多,比如:
通过按索引排序进行优化
减少参与排序的记录数量
没有必要对数据进行排序
1、必须消除相似数据列的内容(消除是创建一个数据表来存储它们,设置
关联关系
)
2.必须为每组相关数据创建一个表
3.每个数据记录都必须标有主键
第二个范例:
1.只要数据列中的内容是重复的,就意味着该表应该被拆分成多个表
2.通过拆分形成的表必须与外键关联。
第三个范例:
1.必须消除与主键不直接相关的数据列(消除的方法是创建另一个表来存储它们)