亲爱的用户
发起中介:
即第三方中介交易,买卖双方达成一致,为买卖双方提供中介交易,中介费2.5%;
发起委托:
卖方委托中介网进行谈判售卖物品或服务中介网全力推向终端和投资市场,中介费5%。
程序员的顿悟
这次写一篇与代码优化相关的难忘经历 ① 第一次是产品觉得功能列表显示很慢,但部门不太忙,只剩下我一个人,所以让我优化。作为一个工作时间不长的新人,我的心仍然很困惑。我首先定位了相关的业务代码,发现有很多表需要查询,需要查询的数据需要处理。因此,断点位于一些较慢的地方。果不其然,其中一种查询数据库的方法速度特别慢。在我的脑海中,我疯狂地回忆起当时记忆中的SQL优化。取出SQL后,我发现查询是针对整个表数据的,没有使用传递的参数,但方法传递的参数显然包括在内,对吧??我一步一步地查看了SQL连接,最终发现查询条件没有连接,导致查询整个表数据。此外,随后的处理也是从整个表数据中进行过滤和处理 改装后,速度确实更快了,但仍然没有达到产品的预期。因此,使用多线程来使用不同的线程查询不同的表,并使用CountDownLatch来控制线程,以便在执行下一步之前完成所有数据查询。修改后速度快多了 在使用多线程时,注意线程安全问题很重要,因为我们以前遇到过每次查询的数据总是较少。最后,我们使用了Collections。synchronizedList(new ArrayList<>)以确保集合的安全 ② 第二次是数据量太大,无法在前端显示,所以我们通过导出HTML对其进行了优化。起初,我只需要修改后端返回到前端的结构。由于它是一个树结构,我们使用了递归。在递归之前,我们首先使用Java的流流根据父ID对数据进行分组。这样,在递归过程中,我们可以直接根据父ID找到相应的集合,而不必每次遍历整个集合。 当前端调用时,发现超过300000个数据卡在数据库查询中,无法进行我编写的递归 所以我在Oracle数据库中使用了rownum()方法,每次查询数以万计的项目,并进行批量查询。为了确保数据不重复,我需要按ID进行排序,这可能很慢,但可以生成。至于进一步的优化,我将使用线程,但由于它已经可以生成,因此没有必要对其进行优化。 关于优化,到目前为止,我接触到的基本上是数据库方面的SQL优化,创建索引,在业务中使用多线程(注意线程安全),以及通过添加服务器部署集群进行部署。至于Jvm优化,我还没有学会这些更高级的方法。
如果想要了解更多,可以去帮助中心 或者可以联系平台经纪人