在编码规范中提到数据库的设计方法中包括
性能与效率的前提下,做相应的SQL优化。在整个产品中,有时候不能忽略一些细小的优化,当出现过多未优化的细节时,也能带来致命的负载问题。
- 延迟更新机制,例如:首页的在线人数等,在实际产品中,有些数据不一定需要实时更新的,因为对于这类型的数据来说,实时更新的价值不高,对于这种情况我们可以考虑在产品研发过程中引入廷迟更新机制,这样可以从一定程度上降低SQL的负载。
- 索引的合理使用,能给你带来高效的SQL查询,但不是索引越多越好,索引的引入需在查看整个模块的设计,使之最大程度上使用索引。
- 读写分离,在X2的版本中,我们引入了多SQL服务器的支持,在主从服务器中,你可以配置写服务器跟读服务器,这样对于负载高的站点中可以使用这个功能达到读写分离,降低由于写过程序中造成的MySQL表锁定后的SQL排队等候时间过长
-
- 禁止在循环中进行相应的SQL查询,当遇到这种情况时,可以尽可能的将其转换成循环外的查询。
- 在SQL查询中禁用NOT IN条件,NOT IN的效率比IN低很多,当使用IN时,也要尽可能的保证IN的数量。
- 化繁为简,在优化过程中,尽可能的化繁为简,把复杂的SQL分拆面几个简单的SQL更有种于对整体SQL的优化处理
-