记录最近遇到的2个问题
2014-05-07 22:38
197 查看
需要异步地创建N个对象,并按照时间顺序放入集合,原本是这么写的:
结果发现顺序没有保证,放入集合的顺序是混乱的。主要对async太自信了,想当然认为times可以保证顺序。最后发现调用错了API,如果需要保证顺序,应该调用timesSeries方法:
另外一个问题,有个列表页面,每一行需要展示的数据散落在多个表中。一开始的做法是先从一个表中查出N条数据,然后循环取到ID,到各个表中查剩余的数据。这样当列表的记录数很多的时候,总的SQL语句会非常多,因此列表展示得很慢
最后解决的方法是:
1、把能合并的SQL语句合并
2、不能合并的语句,把字段放到主表中
其实第2个办法也是利弊参半,违反了范式,而且如果都这么做,主表的冗余字段会变得太多。但是在我们这个场景下,这种方法可以解决问题。所以有时候也不能太教条,还是要根据实际情况灵活应对
async.times(maxDays, createDataGrid, createBlankGrids);
结果发现顺序没有保证,放入集合的顺序是混乱的。主要对async太自信了,想当然认为times可以保证顺序。最后发现调用错了API,如果需要保证顺序,应该调用timesSeries方法:
async.timesSeries(maxDays, createDataGrid, createBlankGrids);
另外一个问题,有个列表页面,每一行需要展示的数据散落在多个表中。一开始的做法是先从一个表中查出N条数据,然后循环取到ID,到各个表中查剩余的数据。这样当列表的记录数很多的时候,总的SQL语句会非常多,因此列表展示得很慢
最后解决的方法是:
1、把能合并的SQL语句合并
2、不能合并的语句,把字段放到主表中
其实第2个办法也是利弊参半,违反了范式,而且如果都这么做,主表的冗余字段会变得太多。但是在我们这个场景下,这种方法可以解决问题。所以有时候也不能太教条,还是要根据实际情况灵活应对
相关文章推荐
- 记录最近遇到的两个小问题
- 好久没来,记录一下最近工作中遇到的问题
- 最近在项目中实践了一下Redis,过程中遇到并解决了若干问题,记录之.
- 最近遇到问题不少,还真不好解决,记录下来,静下心的时候好好想想
- 最近工作中遇到的2个问题
- sql去重问题(最近java笔试总遇到这个问题,忍不住要记录一下)
- 最近遇到的2个问题,分享下,方便以后遇到问题的盆友。
- 最近因为项目需要,需要接入友盟的推送,遇到很多问题,记录一下
- 最近做了一个iOS小应用,记录下遇到的问题以及解决方法
- 最近遇到了 manifest 的相关问题的记录
- 最近遇到的mysql php 中的各种中文乱码问题,记录一下
- 最近工作里遇到的一些问题,记录下来
- 作DNN CrossArticle模块BUG修改时,遇到2个小问题,在此记录一下。
- 作DNN CrossArticle模块BUG修改时,遇到2个小问题,在此记录一下。
- 最近用struts2,遇到几个出错时未能打log的问题,算是小细节吧,记录一下!写代码必须继续坚持良好习惯!
- 记录最近面试时遇到的一个问题:Android root的原理
- 最近学习过程中遇到的问题,记录一下
- Android学习记录(六) 记录一下最近遇到的坑:url转义遇到的问题
- Android学习记录(七) 记录一下最近遇到的坑:文件断点续传的问题。
- 最近开发遇到一个传值和引用问题 记录一下