记录最近遇到的2个问题

来源:互联网 发布:硬盘录像机数据恢复 编辑:程序博客网 时间:2024/05/16 01:50

需要异步地创建N个对象,并按照时间顺序放入集合,原本是这么写的:

async.times(maxDays, createDataGrid, createBlankGrids);

结果发现顺序没有保证,放入集合的顺序是混乱的。主要对async太自信了,想当然认为times可以保证顺序。最后发现调用错了API,如果需要保证顺序,应该调用timesSeries方法:

async.timesSeries(maxDays, createDataGrid, createBlankGrids);

另外一个问题,有个列表页面,每一行需要展示的数据散落在多个表中。一开始的做法是先从一个表中查出N条数据,然后循环取到ID,到各个表中查剩余的数据。这样当列表的记录数很多的时候,总的SQL语句会非常多,因此列表展示得很慢

最后解决的方法是:

1、把能合并的SQL语句合并

2、不能合并的语句,把字段放到主表中

其实第2个办法也是利弊参半,违反了范式,而且如果都这么做,主表的冗余字段会变得太多。但是在我们这个场景下,这种方法可以解决问题。所以有时候也不能太教条,还是要根据实际情况灵活应对


0 0
原创粉丝点击