We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
经过测试我们发现在数据库中添加一些索引可以提高部分常用查询的效率(大部分提升性能高于%85,即节省超过85%的时间开销)。
从CmsContentRelatedDao中可以看出在查询cms_content_related表时查询条件经常会包含related_content_id,通过实际的测试收集数据库log,我们发现不少查询条件仅包含related_content_id,无法使用现有的联合索引,因此可以单独为related_content_id建立索引从而极大地提高相关查询语句的效率。
从CmsWordDao中可以看出在查询cms_word表是查询条件往往都包含有site_id,测试并查询数据库日志后确实如此,且存在许多查询条件仅包含site_id的查询语句,因此可以单独为site_id建立索引从而提高相关语句的查询效率。
从SystemClusterDao中可以看出,在查询表sys_cluster时master和heartbeat_date是两个经常共同出现的查询条件,测试过程的数据库查询日志结果符合预期,因此可以建立(heartbeat_date, master)联合索引从而加快查询速度。
从SystemDeptPageDao中可以看出,查询表sys_dept_page时查询条件往往包含dept_id和page,已经建立了(dept_id, page)的索引,但通过分析数据库查询日志可以发现有时候会仅通过page来查询,因此需要单独为page添加索引从而加快相关查询语句的效率。
从SysModuleLangDao中可以看出,查询表sys_module_lang时常用的查询条件为module_id和lang,已有索引(module,lang),但是从数据库查询日志中看出存在单独使用lang进行查询的情况,因此需要为lang单独添加索引加快相关查询速度。
从SysRoleModuleDao中可以看出,查询表sys_role_module时常用的查询条件为role_id和module_id,已有索引(role_id,module_id),但是从数据库查询日志中看出存在单独使用module_id进行查询的情况,因此需要为module_id单独添加索引加快相关查询速度。
从SysRoleUserDao中可以看出,查询表sys_role_user时常用的查询条件为role_id和user_id,已有索引(role_id,user_id),但是从数据库查询日志中看出存在单独使用user_id进行查询的情况,因此需要为user_id单独添加索引加快相关查询速度。
从SysSiteDao中可以看出,查询表sys_site时常用的查询条件为disabled、parent_id和name,从数据库查询日志中看出存在单独使用parent_id进行查询的情况,因此需要为parent_id单独添加索引加快相关查询速度。
从SysUserDao中可以看出,site_id为查询sys_user时常用的一个条件,数据库的查询日志的结果也确实如此,因此需要为site_id单独添加索引加快相关查询速度。
添加下列索引 cms_content_related.related_content_id cms_word.site_id sys_cluster.(heartbeat_date,master) sys_dept_page.page sys_module_lang.lang sys_role_module.module_id sys_role_user.user_id sys_site.parent_id sys_user.site_id
The text was updated successfully, but these errors were encountered:
非常感谢您提交的代码,sys的那几个表索引不够优化对后台使用影响还是挺大的,还希望您长期关注项目
Sorry, something went wrong.
No branches or pull requests
问题
经过测试我们发现在数据库中添加一些索引可以提高部分常用查询的效率(大部分提升性能高于%85,即节省超过85%的时间开销)。
1.cms_content_related.related_content_id
从CmsContentRelatedDao中可以看出在查询cms_content_related表时查询条件经常会包含related_content_id,通过实际的测试收集数据库log,我们发现不少查询条件仅包含related_content_id,无法使用现有的联合索引,因此可以单独为related_content_id建立索引从而极大地提高相关查询语句的效率。
2.cms_word.site_id
从CmsWordDao中可以看出在查询cms_word表是查询条件往往都包含有site_id,测试并查询数据库日志后确实如此,且存在许多查询条件仅包含site_id的查询语句,因此可以单独为site_id建立索引从而提高相关语句的查询效率。
3.sys_cluster.(heartbeat_date,master)
从SystemClusterDao中可以看出,在查询表sys_cluster时master和heartbeat_date是两个经常共同出现的查询条件,测试过程的数据库查询日志结果符合预期,因此可以建立(heartbeat_date, master)联合索引从而加快查询速度。
4.sys_dept_page.page
从SystemDeptPageDao中可以看出,查询表sys_dept_page时查询条件往往包含dept_id和page,已经建立了(dept_id, page)的索引,但通过分析数据库查询日志可以发现有时候会仅通过page来查询,因此需要单独为page添加索引从而加快相关查询语句的效率。
5.sys_module_lang.lang
从SysModuleLangDao中可以看出,查询表sys_module_lang时常用的查询条件为module_id和lang,已有索引(module,lang),但是从数据库查询日志中看出存在单独使用lang进行查询的情况,因此需要为lang单独添加索引加快相关查询速度。
6.sys_role_module.module_id
从SysRoleModuleDao中可以看出,查询表sys_role_module时常用的查询条件为role_id和module_id,已有索引(role_id,module_id),但是从数据库查询日志中看出存在单独使用module_id进行查询的情况,因此需要为module_id单独添加索引加快相关查询速度。
7.sys_role_user.user_id
从SysRoleUserDao中可以看出,查询表sys_role_user时常用的查询条件为role_id和user_id,已有索引(role_id,user_id),但是从数据库查询日志中看出存在单独使用user_id进行查询的情况,因此需要为user_id单独添加索引加快相关查询速度。
8.sys_site.parent_id
从SysSiteDao中可以看出,查询表sys_site时常用的查询条件为disabled、parent_id和name,从数据库查询日志中看出存在单独使用parent_id进行查询的情况,因此需要为parent_id单独添加索引加快相关查询速度。
9.sys_user.site_id
从SysUserDao中可以看出,site_id为查询sys_user时常用的一个条件,数据库的查询日志的结果也确实如此,因此需要为site_id单独添加索引加快相关查询速度。
解决方法
添加下列索引
cms_content_related.related_content_id
cms_word.site_id
sys_cluster.(heartbeat_date,master)
sys_dept_page.page
sys_module_lang.lang
sys_role_module.module_id
sys_role_user.user_id
sys_site.parent_id
sys_user.site_id
The text was updated successfully, but these errors were encountered: