1.1sql语句性能优化的建议
1)主从库问题
选择分库,分表的方法
2)服务器配置
选择硬件配置较高的电脑做为服务器。
3)网络优化
在我们连接数据库数据库时,是否会网络卡顿,网络卡顿该如何处理。在此基础上,可以选择网络传输速度快的带宽。
4)收缩临时表
在我们平常日常操作数据库的时候,数据库系统会产生一些临时的中间表,经过许久沉淀为经删除,将会产生很多临时表,因此我们可以定时收缩临时表(清除一些临时表),其中可能也包括一些我们在写存储过程中操作不当留下的临时表。
5)定时任务
目前市场上,有很多软件产品,大部分都有定时任务或者定时计划的功能。这时候,我们就可以考虑这个产品本身标准的定时任务以及开发者创建的定时任务,是否规范且完全必要,避免造成数据库资源的浪费。
6)数据库的锁机制
在平常遇见比较长事务的时候,容易把表进行锁住,这时其它SQL操作就进入等待,所以可以使用上with(nolock),给整张表进行去锁。举个简单的例子,我们查询某张表,这时这样表上是有锁的,至于什么锁,读者们可以进行研究一下,这是数据库系统就会加上的。
7)报表查询
举例:在制造业中报表的数据量比较大,查询一次很多都要30s以上的时间,这时候就容易让人感觉特别的卡。除了它的规模大意外,还需要在编写存储过程中注意性能以及方法,不要进行一些无效的联表查询以及注意游标的使用。
8)建立索引
对于一些较大的数据表,可以进行建立索引,可以缩短查询时间,但注意使用的方法。
9)限制查询条件
减少一些无条件的查询,尽量跟业务商讨,添加必录查询条件。除此之外,尽量不要 select * ,根据业务需求的字段需要查询出来即可。
10)勿大量更新语句
尽量避免在上班时间进行更新大量的数据,容易造成整个业务的使用,产生一些锁方面的问题。
11)建立监控日志
创建通俗易懂的监控日志以及便于查询的字段。