Skip to content

多字段join,出现的1+N查询性能问题 #402

@github291406933

Description

@github291406933

描述:遇到一个多字段join,出现的N+1查询问题,翻了文档,百度,issue都未能解决。下面是具体截图。
40EAF1EBE29BAB1314365A9B2D12200F

  • 这是我们使用的版本:
com.github.APIJSON apijson-framework 5.1.0

程序是从官方github上拉下来的DEMO:APIJSONDemo(仅改成我们自己的数据源)。

  • 下面是request跟response
    3A8B7E88AAC04E9AB21A3A14D5452F00

(PS:问题已解决 - 基于5.1.0的版本):
简单说问题是出在APIJSON在【解析】副表on条件顺序、【生成缓存】组装sql的where条件顺序、【查询缓存】按照前端指定顺序组装key的时候,如果是多个字段参与join就会出现顺序不一致,单个字段join不会有有顺序问题也就不会出现1+N查询。
、为副表声明idKey,代码如下:
覆盖AbstractSQLConfig.SIMPLE_CALL_BACK的getIdKey方法,为副表指定idKey,可以帮助APIJSON生成缓存Key的时候,强制按照:主键, 主键{}, 用户主键, 用户主键{} 顺序组装。
image

感谢@TommyLemon大佬及时的解答

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions