关于数据库查询优化的资料搜集

 

 

问题缘起:

 

从N个数中选出最大的K个数,可以达到Nlog(K)的复杂度。
那么如果是,数据库中存放有N条记录,需要根据某条件(如时间列t最小)筛选出K条记录,是否有办法能够构造查询条件,达到这个时间复杂度呢?
目前流行的几种关系型数据库是否支持?

或者,退一步,在实现这种查询时,应该怎样构造sql语句,才能达到比较好的效率呢?不同数据库的支持有何区别?
像这样的写法 select top 10 * from t_list order by column_t desc 肯定是巨慢的。
有什么优化手段呢?索引对这种问题是否有帮助?

思路:
上网查资料,最开始google wiki关系数据库等等,没有明确相关内容。
查找 “数据库优化”,“查询优化”,“sql优化”等等。发现都是怎样写sql提高效率,大多集中在索引等等的介绍。应该不是想要的答案。

考虑database实现select必然也有自己的算法。于是转而查找“数据库 算法“,结果不理想。
这时突然想到应该直接“google” E文。于是google ”sql algorithm“ "sql optimizer" 发现了不少资源。再细细挑。
不少介绍数据库select的实现方式,算法选择问题。这个
How things work : sql select statement

How things work : sql order by clause

可惜,这个地址访问不了,好在google快照有记录


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值