文章回顾:
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技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理
2:如何安装部署秋色园CYQBlog站点
3:Windows7下如何安装部署秋色园CYQBlog站点

 
PS:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427
 
上节回顾:
上一节中,介绍了 秋色园QBlog 在性能优化方面所做的基础工作,包括字节输出大小,写并发控制,缓存控制等。特别是对缓存的处理,做到全局把握,优化内存资源,合理调优化。CYQ.Data 在性能调优方面表现出一定的优势。
 
本节介绍:
本节将介绍秋色园 QBlog 更进一步的网站优化方式:全局的SQL语句优化。
       
        在传统的软件(网站)开发中,几乎离不开数据库,而且数据库占据了绝对性的重要性,其数据库性能不断考验着每一位开发者,对数据库调优也成了每一个开发者的必备技能,其重要性不言而喻。
 
既然SQL调优如此重要,那平时这又是一种什么情况呢?
 
一:SQL,你在哪里?出来让我优化优化?
 
情况1:新手型SQL,何处寻优化?
有一些开发的站点,SQL在页面满天飞,快速开发之后,上线了,之后大乎网站打开很慢,自己束手无策,于是发贴求优化。你说,你这让你咋优化?都不知道你SQL在哪里,看你源码每个页面找一找?不能吧!
 
情况2:经验驱动型的索引优化
有一些有经验的开发者,在开发前后,会根据经验对数据库建立一些索引,以提高查询性能,但是往往它都是受经验驱动,而不是受实际执行的SQL驱动在优化。其实本质上,它也不知道哪条语句是什么情况,只是觉得应该,应该加个索引,通常效果都不会太差。
 
情况3:DBA热爱存储过程
一些公司有DBA的,通常会建议弄成存储过程,图个啥?性能高?也许不是,也许只因这样能够掌握所有SQL,方便他们做SQL语句优化。但不是每个公司都有DBA或者不是每个项目都把SQL折腾全是存储过程的。
 
情况4:统一的SQL语句
有些开发者,习惯把SQL语句配置到Xml中,是方便统一管理,还是方便修改SQL语句时不用重新编绎,还是为了展示下高级的应用而使用,各有各目的,不好说,说不好,不说好。但是这些Xml,通常都是配置完写完就扔一边,无奈一个系统最终产生的SQL实在是太多了,到最后你没事都懒的去看xml文件,而且调试代码转到SQL这来,还要看Xml,特纠结,优化别找我,把Xml扔给DBA?
 
情况5:高手寻瓶颈SQL
有一些高手,他们会利用性能跟踪调试器,在一堆又一堆的SQL语句中寻找性能瓶颈的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功能就出来了:
 
测试地址:http://demo.cyqdata.com
 
测试说明:
为了更好的展示效果,把秋色园QBlog,Copy一份放到另一台服务器,用上了sql2000数据库,同时关闭了缓存等效果,保证每次访问都执行原生的SQL语句并输出。
 
截图说明:
为了避开以后示例取消语句输出时,上面测试网址看不到测试结果,特别截图一张,打印>1ms的页面语句出来。
 
如下图:
 
实现调优:
如果你顺手打开上面的测试站点,你已经发现,可以看到任意一个页面执行的SQL输出,同时还有语句的执行时间,站点慢不慢,一看就知道。SQL语句优化,变的可控而且轻松很多,索引该怎么加,心中多了几分把握。
 
如此功能:
CYQ.Data 已经具备,如果你已经在使用CYQ.Data开发项目,而且也希望在新版本中体验这个功能,可以与作者联系。
 
 
总结:
本节介绍了秋色园QBlog 的SQL优化策略,下节继续介绍优化策略的再后续部分,敬请关注。
     本文转自cyq1162 51CTO博客,原文链接:http://blog.51cto.com/cyq1162/566464,如需转载请自行联系原作者

秋色园QBlog技术原理解析:性能优化篇:打印页面SQL,全局的SQL语句优化(十三)...相关推荐

  1. 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七)

    2019独角兽企业重金招聘Python工程师标准>>> 上节概要: 上节 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及分库分散并发方案(十六)  中, 介绍了 ...

  2. 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五)...

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  3. 秋色园QBlog技术原理解析:性能优化篇:access的并发极限及超级分库分散并发方案(十六)...

    上节回顾: 上节 秋色园QBlog技术原理解析:性能优化篇:数据库文章表分表及分库减压方案(十五) 中, 介绍了 秋色园QBlog 在性能优化方面,从技术的优化手段,开始步入数据库设计优化,并从数据的 ...

  4. 秋色园QBlog技术原理解析:系列终结篇:最后的AOP策略(十九)

    2019独角兽企业重金招聘Python工程师标准>>> 开篇闲话: 好几个月没写文章了,从9月15号发布新浪"微博粉丝精灵"V1.0后,持续的几个月都在折腾它,现 ...

  5. 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八)

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 3: 秋色 ...

  6. 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三)

    文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程 本节,将从 ...

  7. 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四)

    2019独角兽企业重金招聘Python工程师标准>>> 文章回顾: 1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用 2: 秋色园QBlog技 ...

  8. 秋色园QBlog技术原理解析:开篇:整体认识(一)

    2019独角兽企业重金招聘Python工程师标准>>> 很多网友表示对 秋色园 的实现原理感兴趣,有很多人,问了很多问题,包括: 1:URL地址怎么没有后缀? 2:多语言是怎么实现的 ...

  9. 秋色园QBlog高性能博客开放源码下载 限量下载1000次

    写在开源前的几句话: 1:本次开放的源码为V1.0 版本源码,限量下载,次数为1000次.   PS:目前下载量已近1000次,准备停止对外下载了,如果你是第1000次以外的下载者,想获取源码,你可以 ...

最新文章

  1. Centos7部署ntp服务器同步时间以及直接将本地时间同步为北京时间
  2. php读取excel函数,PHP读取Excel函数Spreadsheet_Excel_Reader
  3. java中异常注意问题(发生在多态是的异常问题)
  4. linux ora-00031,kill session遇到ORA-00031錯誤
  5. (48)System Verilog 类中变量随机激励数组数据
  6. python分析pcap文件_利用Python库Scapy解析pcap文件的方法
  7. BZOJ 1211: [HNOI2004]树的计数 purfer序列
  8. [深度学习] 深度学习常见概念
  9. 阶段1 语言基础+高级_1-3-Java语言高级_09-基础加强_第3节 注解_12_注解_概念
  10. tomcat启动时报错ports are invalid,默认端口不要为-1
  11. nb模块不能接收公网消息_NB-IoT 对接调测问题汇总,你想知道的都在这儿 | 收藏吧...
  12. uniapp 小程序授权登录时 获取不到用户头像等信息 只能得到灰色缺省头像以及nickname 为“微信用户”等
  13. 主析取范式与主合取范式
  14. 计算机网络管理员四级理论知识试卷,2014计算机网络管理员模拟试题及答案
  15. 「硬刚Doris系列」Apache Doris的向量化和Roaring BitMap
  16. 【山大智云】SeafileServer源码分析之CDC(基于内容长度可变分块)
  17. 营业增加值公式简要解析
  18. 10分钟读懂什么是产品定位
  19. 理解Linux的.a、.so和.o文件
  20. c++ bitset类用法

热门文章

  1. 广东计算机学会 信息学省初赛,全国青少年信息学奥林匹克竞赛联赛-广东计算机学会...
  2. echarts formatter_基于echarts实现某些骚需求
  3. transform 的副作用
  4. 理解redux中Middleware
  5. 2021年甘肃省中职生高考成绩查询,甘肃2021年中专生怎么参加普通高考
  6. php mysql ajax登录界面_PHP+jQuery+Ajax实现用户登录与退出
  7. 20220228:力扣第282场周赛(下)
  8. 20210602:力扣第243周周赛(下)
  9. PL/SQL Developer 12.0下载及汉化
  10. 形容女人的词语大全(坏与好)