APIJSON icon indicating copy to clipboard operation
APIJSON copied to clipboard

APIJSON 性能优化

Open TommyLemon opened this issue 4 years ago • 2 comments

具体说下

  1. AbstractParser.onArrayParse 中判断是否为 Table[]: { Table: {} } 格式 满足的话就直接返回 rawList, 不用一个个对象的数据 add 进 JSONArray 再提取出来 image https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java

  2. AbstractSQLExecutor.onPutColumn 中缓存副表字段对应的表名 image

if (childConfig != null && (tables[columnIndex] == childConfig.getSQLTable() || childTable.equalsIgnoreCase(childConfig.getSQLTable()))) {
    tables[columnIndex] = childConfig.getSQLTable();
    ...
}

注:初步思路,或许应该换个方式

https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractSQLExecutor.java

为什么 1.显著提升 10W+ 数据量下的单表查询性能

2.显著提升 1000+ 数据量下的多表 JOIN 查询性能

TommyLemon avatar Jul 13 '21 03:07 TommyLemon

已实现 1,实测在一些场景下有 19%-27% 的性能提升 https://github.com/Tencent/APIJSON/issues/315

TommyLemon avatar Sep 27 '21 20:09 TommyLemon

已实现 2,实测在一些场景下有 6%-21% 的性能提升 https://github.com/Tencent/APIJSON/issues/354

TommyLemon avatar Jan 09 '22 15:01 TommyLemon