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
表sys_dict_type中缺少一些需要的索引,通过测试,我们发现加上这些索引可以极大地提高相关查询的性能(高达80%),需要添加的索引和影响的查询分别如下所示:
code本质上是一个唯一字段,在DictTypeService中可以看出在更新和插入的时候都要判断是否已存在相同的code和name,同时在查询表的时候也经常会将code或name作为查询条件(例如DictTypeService#findPageBySpec),在这些字段上建立索引可以极大的提高相关查询的效率。
同上,name也是一个唯一字段,经常在更新和插入时会进行重复判断,同时也会在查询中作为条件,因此也应该添加索引。
由DictTypeService#findPageBySpec产生的查询总是会用sort字段进行排序,因此应该在sort字段上加索引从而加快相关查询。
测试中我们发现,由DictTypeService#findPageBySpec产生的查询经常会使用system_flag作为查询条件,并使用sort对查询结果进行排序,为了避免只有sort产生的row lookup,需要加上(system_flag, sort)的复合索引来避免该问题。
添加缺少的索引 sys_dict_type.code sys_dict_type.name sys_dict_type.sort sys_dict_type.(system_flag, sort)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
问题
表sys_dict_type中缺少一些需要的索引,通过测试,我们发现加上这些索引可以极大地提高相关查询的性能(高达80%),需要添加的索引和影响的查询分别如下所示:
1.sys_dict_type.code
code本质上是一个唯一字段,在DictTypeService中可以看出在更新和插入的时候都要判断是否已存在相同的code和name,同时在查询表的时候也经常会将code或name作为查询条件(例如DictTypeService#findPageBySpec),在这些字段上建立索引可以极大的提高相关查询的效率。
2.sys_dict_type.name
同上,name也是一个唯一字段,经常在更新和插入时会进行重复判断,同时也会在查询中作为条件,因此也应该添加索引。
3.sys_dict_type.sort
由DictTypeService#findPageBySpec产生的查询总是会用sort字段进行排序,因此应该在sort字段上加索引从而加快相关查询。
4.sys_dict_type.(system_flag, sort)
测试中我们发现,由DictTypeService#findPageBySpec产生的查询经常会使用system_flag作为查询条件,并使用sort对查询结果进行排序,为了避免只有sort产生的row lookup,需要加上(system_flag, sort)的复合索引来避免该问题。
解决方法
添加缺少的索引
sys_dict_type.code
sys_dict_type.name
sys_dict_type.sort
sys_dict_type.(system_flag, sort)
The text was updated successfully, but these errors were encountered: