针对 Joomla CMS 的 SQL 优化项目(状态更新)
2014 年 GSoC - 针对 Joomla CMS 的 SQL 优化项目是目前我参与的项目。在花更多时间熟悉 Joomla 内核后,我实现了几个查询,并希望按照最终结果完成项目。
本文是关于我在 GSoC 2014 中 Joomla 项目状态更新的帖子。正如我在第一篇帖子中提到的,我的项目工作基于以下三个主要方面
- 测试性能并识别查询及其瓶颈
- 如果可能,重新实现查询以提高性能
- 测试查询并比较与后续性能结果相关的性能
在过去的五周里,我的第一个任务是熟悉 Joomla 代码库并在运行时识别查询执行路由。我花了大约一周的时间来熟悉代码库。在相当程度上理解了系统中的查询执行路由后,我的下一个任务是找到一个合适的查询分析工具。我必须浏览许多资源并使用多个分析工具来找到最适合分析目的的工具。经过努力工作,我发现了一个名为 Neor Profiler 的分析工具。选择这个分析工具的原因是它可以存储多个会话的跟踪数据,而且它是一个开源产品。
另一个重要的分析工具是 Joomla 内置的调试工具。这可以从管理面板中启用,启用调试工具后,我们可以识别查询以及它们在系统中的执行细节。我使用这两个工具,因为没有将日志记录到数据库系统的调试工具显示查询说明并提供文件执行路径。由于缺乏多会话处理能力,我并不只使用这个工具。相反,我使用 Neor Profiler 与调试工具结合使用。
在上述准备工作完成后,我的下一个任务是使用大量数据超载系统。这是我最难面对的任务。在导师Nicola Galgano和Gunjan Patel的帮助下,我能够超载系统,使其包含相当数量的数据文章。但截至目前,我们认为数据量还不够,因为我们大约有13k条数据文章和大约1600个四级分类。我们仍在寻找更大、更真实的数据集,并利用现有资源进行项目工作。
我的下一步是开始查询分析和识别瓶颈,开始查询优化工作。我首先从com_content和com_categories组件开始,目前正在对此进行优化工作。首先,我从管理组件开始,通过分析过程来识别瓶颈。我识别出几个需要优化的查询,并在实施前记录下来。我不得不浏览教程,了解查询优化的技术。为此任务,我花费了近一周时间,然后开始对识别的查询进行优化。
接下来的几周用于实施工作,我优化了几个查询并在本地进行了测试。经过一些测试后,我提交了几个更改,其他需要更多测试。目前,我的导师正在对这些更改进行进一步测试,然后再将其推送到Joomla仓库。
我的未来目标是开始进行压力测试,使用并发用户进行测试,我希望使用apache的ab.exe工具来实现这一点。为了完成项目,还有更多工作要做,我希望最终能够为社区提供有价值的东西。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能并不符合Joomla项目的官方立场。
通过接受,您将访问https://magazine.joomla.net.cn/外部第三方提供的服务
评论