咨询,就免费赠送域名与服务器,咨询热线:400-867-6009当前位置: 主页 > 建站知识 > 网站建设知识 >
推荐内容
联系我们
电话咨询:400-867-6009
E-mail:baiyisou@qq.com

数据库如何优化性能

作者/整理:微信/QQ1255009288 来源:互联网 2020-01-11

1、配置优化
 
配置的优化其实包含两个方面的:操作系统内核的优化和mysql配置文件的优化
 
1)系统内核的优化对专用的mysql服务器来说,无非是内存实用、连接数、超时处理、TCP处理等方面的优化,根据自己的硬件配置来进行优化,这里不多讲;
 
2)mysql配置的优化,一般来说包含:IO处理的常用参数、最大连接数设置、缓存使用参数的设置、慢日志的参数的设置、innodb相关参数的设置等,如果有主从关系在设置主从同步的相关参数即可,网上的相关配置文件很多,大同小异,常用的设置大多修改这些差不多就够用了。
 
2、sql语句的优化
 
1)尽量稍作计算
 
Mysql的作用是用来存取数据的,不是做计算的,做计算的话可以用其他方法去实现,mysql做计算是很耗资源的。
 
2)尽量少 join
 
MySQL 的优势在于简单,但这在某些方面其实也是其劣势。MySQL 优化器效率高,但是由于其统计信息的量有限,优化器工作过程出现偏差的可能性也就更多。对于复杂的多表 Join,一方面由于其优化器受限,再者在 Join 这方面所下的功夫还不够,所以性能表现离 Oracle 等关系型数据库前辈还是有一定距离。但如果是简单的单表查询,这一差距就会极小甚至在有些场景下要优于这些数据库前辈。
 
3)尽量少排序
 
排序操作会消耗较多的 CPU 资源,所以减少排序可以在缓存命中率高等 IO 能力足够的场景下会较大影响 SQL的响应时间。
 
对于MySQL来说,减少排序有多种办法,比如:
 
通过利用索引来排序的方式进行优化
 
减少参与排序的记录条数
 
非必要不对数据进行排序
 
 
设计数据库要满足三大范式:
 
第一范式:
 
1、内容相似的数据列必须消除(消除的办法就是再创建一个数据表来存放他们,建立关联关系)
 
2、必须为每一组相关数据分别创建一个表
 
3、每条数据记录必须用一个主键来标示
 
第二范式:
 
1、只要数据列里面的内容出现重复,就意味着应该把表拆分为多个表
 
2、拆分形成的表必须用外键关联起来。
 
第三范式:
 
与主键没有直接关系的数据列必须消除(消除的办法就是再创建一个表来存放他们)
 
微信