文章回顾:
1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用
2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程
3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL
4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序
5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期
6: 秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六) --介绍基类生命周期内部业务
7: 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七) --介绍界面html加载原理
8: 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八) --介绍html的内容是如何填充
9: 秋色园QBlog技术原理解析:独创的多语言翻译机制(九) --介绍html多语言翻译原理
10: 秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十) --总结演示示例代码
11:秋色园QBlog技术原理解析:页面Post提交机制(十一) --介绍如果Post提交数据
12: 秋色园QBlog技术原理解析:性能优化篇:字节与缓存与并发(十二) --介绍性能优化:字节,并发及缓存
附章:
1:秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理
PS:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427
上节回顾:
本节介绍:
在传统的软件(网站)开发中,几乎离不开数据库,而且数据库占据了绝对性的重要性,其数据库性能不断考验着每一位开发者,对数据库调优也成了每一个开发者的必备技能,其重要性不言而喻。
既然SQL调优如此重要,那平时这又是一种什么情况呢?
一:SQL,你在哪里?出来让我优化优化?
情况1:新手型SQL,何处寻优化?
情况2:经验驱动型的索引优化
情况3:DBA热爱存储过程
情况4:统一的SQL语句
情况5:高手寻瓶颈SQL
以上的方式,各有各方式,但都是一种情况,难以简单化的对SQL重点语句进行定位分析。
那秋色园又是如何对SQL进行调优的呢?按F5一步一步断点看语句?
No,受到缓存全局掌控的启示,决定让SQL也做到全局掌握,该出来时就出来?往下看:
二:SQL,该出来时就出来,全面掌控SQL
秋色园在性能优化上,虽然在缓存上面做了全局优化,但缓存总有失效时,操作数据库是逃不开的事实。
缓存能全局掌控,SQL语句,我也要。为此,思索了不少时间:
于是,细分下产生了这么三条要求:
1:必须知道每个页面执行的SQL,
2:需要知道每一条的语句的执行时间
3:过滤出执行时间大于N(ms)的语句,把执行时间多的优化了先。
如何能做到这一点?缓存可以,SQL也可以。
1:所有执行的SQL语句有一个共同点,都是通过 CYQ.Data 来执行。
2:对执行的SQL进行统一管理,本身MAction.DebugInfo能输出执行的SQL语句,只要加以控制,即可任意输出页面的SQL。
于是,这么一个强大的打印页面SQL功能就出来了:
测试说明:
截图说明:
如下图:
实现调优:
如此功能:
CYQ.Data 已经具备,如果你已经在使用CYQ.Data开发项目,而且也希望在新版本中体验这个功能,可以与作者联系。
总结:
本节介绍了秋色园QBlog 的SQL优化策略,下节继续介绍优化策略的再后续部分,敬请关注。
版权声明:本文原创发表于 博客园,作者为 路过秋天 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。 |
个人微信公众号 |
Donation(扫码支持作者):支付宝: |
Donation(扫码支持作者):微信: |