目录
关键词
程序性能优化、效率优化、速度优化
关键步骤
- 尽量减少第一步结果集的行数,这样可以大量减少后续连接大表时的耗时
- 尽量缩小需要LOOP循环的内表,比如去重或者删除不必要的数据
- JOIN 使用:不要一次性 JOIN 超多表
- 减少辅助表的行数,也就是需要读取数据的内表的行数
- 看业务是否能使用排序表或者哈希表,也可以减少读取时间。如果不行的话,要先对标准表进行排序,注意要对读取的键依次排序,顺序不能乱,然后再使用二分法进行读取
- 不要在LOOP里面写SELECT,这样效率很低。先将数据在LOOP外获取出来,再进行读取
- 尽量不要LOOP套LOOP,以及多重循环
- 在SELECT的时候,只查询需要的数据,不要SELECT *,直接写*取出那么多数据。
- 在用 FOR ALL ENTRIES IN 时:先判断这个内表非空、去重
尽量减少第一步结果集的行数,这样可以大量减少后续连接大表时的耗时


排序要按照字段的读取顺序进行排序!!否则二分法BINARY SEARCH会读取失败

减少辅助表的行数,也就是需要读取数据的内表的行数


推荐「在 DB 做 LEFT JOIN」,而不是读出來再 READ 匹配

运行效果
在220系統,由原来的8.43秒到秒出:

效率在原来的基础上,也提升了:
