APIJSON
APIJSON copied to clipboard
APIJSON 性能优化
具体说下
-
AbstractParser.onArrayParse 中判断是否为 Table[]: { Table: {} } 格式 满足的话就直接返回 rawList, 不用一个个对象的数据 add 进 JSONArray 再提取出来
https://github.com/Tencent/APIJSON/blob/master/APIJSONORM/src/main/java/apijson/orm/AbstractParser.java -
AbstractSQLExecutor.onPutColumn 中缓存副表字段对应的表名

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 查询性能
已实现 1,实测在一些场景下有 19%-27% 的性能提升 https://github.com/Tencent/APIJSON/issues/315
已实现 2,实测在一些场景下有 6%-21% 的性能提升 https://github.com/Tencent/APIJSON/issues/354