程序员之路——我还是个菜鸟 要多努力 不可怨天尤人 不可元自己运气差,是自己努力不够
来源:互联网 发布:金蝶软件进销存 编辑:程序博客网 时间:2024/04/29 22:53
程序员之路——我还是个菜鸟 要多努力 不可怨天尤人 不可元自己运气差,是自己努力不够
讨论一个查询优化的算法
交易表 a
交易ID,交易时间,交易金额,操作员编号
操作员表 b
操作员编号 操作员名称
整个业务中可能有1500个左右的操作员(或者更多),现在需要做如此查询:列出某段时间内进行交易
的操作员名称(比如08年12月-09年3月,或者时间段更长),在此期间进行的交易是非常多的(数量级是
万或者更多)
算法1:从表a查询该段时间内进行操作的操作员编号,根据操作员编号再从表b查询对应编号的操作员
名称。这种算法效率非常低(比如表a有10000条记录,则需要在表b中进行10000次查询),尤其
是交易数据比较大的时候,而且有很多重复的查询。
算法2: 从表a查询该段时间内进行操作的不重复的操作员编号,根据操作员编号再从表b查询对应编号
的操作员名称,写一编号与名称对应的函数,然后从表a中查询该段时间内进行操作的操作员编
号,根据编号与名称对应函数得到操作员名称。该算法在表a中进行了2次查询,当表a中数据大
的时候,效率也非常低。
算法3: 写一函数getopname(flag,id,name),输入参数flag(判断该操作员编号 id 是否需要重新查询),
id,输出 name,从表a查询该段时间内进行操作的操作员编号,调用函数getopname得到name,flag
参数我想这么设计,0-表示需要在表b中根据id查询name,1-表示之前已经进行过查询了,直接从
查询存储的结果中取得。
我现在想采用算法3,但是如何设计getopname函数还不是特别明确,然后就是该函数的flag参数如何确定
也不太清楚怎么做。大家觉得这种算法可取吗?如果可取的话,具体函数该如何设计呢? 或者不可取的话,
大家有什么更好的方法吗?
- 程序员之路——我还是个菜鸟 要多努力 不可怨天尤人 不可元自己运气差,是自己努力不够
- 原来自己积累的还是不够,需要继续努力!
- 自己不要怪谁。是你自己努力的程度不够,努力吧!
- 自己努力的还远远不够!
- 自己努力
- 我会努力提升自己
- 请永远相信自己的努力、实力和运气
- 才知道自己一无是处的原因——傻傻的而且不够努力。
- 努力+运气。。。。
- 果然还是不够努力是吗?
- 鼓励自己每天要努力
- 我叫利文斯顿,我努力奔跑为了追上那个曾经被寄予厚望的自己,这是我的NBA之路
- 是的,我更喜欢努力的自己
- 程序员努力提升自己,循序渐进学编程
- 我还是会努力
- 应该努力的想想自己还差什么了
- 每天努力超越自己
- 为自己努力吧
- socket select函数的详细讲解
- pku 1961 KMP period 解题报告
- 产品经理值得听的13个培训
- 深入理解D3D9
- OpenJWeb 1.6版本中实现动态设置页面的查询条件列
- 程序员之路——我还是个菜鸟 要多努力 不可怨天尤人 不可元自己运气差,是自己努力不够
- 支付宝高速扩张:招人、招人、再招人
- 无线局域网的安全技术
- 关于牛仔裤你一定要知道的16条
- [转载]简单方法处理usp10.dll (原文地址:http://bbs.kafan.cn/viewthread.php?tid=421630)
- Convert.toInt32 與int.Prase(转)
- 人生的奋斗
- POJ3508 Hide That Number
- 你知道哪六种传统早餐不能吃吗?