http://www.dewen.net.cn/q/14665/个人感觉用二分法最完美的,需要操作系统支持随机读取指定一行的数据,貌似现在还不行,江湖救急呀

评论 (0) • 举报 (0) • 分享 • 链接 • 2013-09-16 
添加评论...
1个答案 票 数
brayden认证专家
2 票
brayden6562
想一下数据库索引怎么做的? 参考b树的实现.

对这题来说, 10亿在 G量级, 分成100份, 为10M量级, 基本上放入内存无压力了.

在这10亿记录中, 均分为100份, 把每份的 第一条记录关键字和 此记录对应的文件偏移量先 扫入内存(类似索引?), 这里需要 磁盘随机io 100次.

这样可以马上定位出 指定关键字所在的记录块, 把相应的记录块拿到内存, 二分查找即可.

更新
数据库定位, 上面的这一点点还差很多啊...

数据库一般:
1). 全表扫描, 没啥好说的;
2). b树索引, 拿oracle来说, 索引的叶节点 存的有 (记录的索引键值, 记录的rowid)
rowid为10个bytes, 存有 segment,file, block, row in the block. 这样可以通过rowid直接找到此记录的物理地址.
详见:
http://www.dbms-notes.com/2010/12/oracle-data-storage-rowids.html

更多索引知识, 参见:
http://www.orafaq.com/node/1403

时间: 2024-10-11 22:22:14

http://www.dewen.net.cn/q/14665/个人感觉用二分法最完美的,需要操作系统支持随机读取指定一行的数据,貌似现在还不行,江湖救急呀的相关文章

Q : office word 2007 段首按退格键无法退到上一行 -- 暂未解决

问题描述: 1.ctrl+退格 能退到上一行,但单独退格键就不行:但是本行可以使用Backspace回退: 2.回车之后首行缩进,新开一个段落,但是紧接着使用退格键无法合并段落(Backspace键不起作用),但是除却段首之外一切删除字符和回退正常: 3.光标放在上一行末尾,然后按Delete键也可以合并段落 Backspace在段首想要合并段落不起作用,究竟是何原因,如果设置和解决? Q : office word 2007 段首按退格键无法退到上一行 -- 暂未解决

MongoDb基础命令

一些基础忘记随时查看.. #整备恢复 mongodump --port 20001 --authenticationDatabase=admin -u *  -d lvlv -c lvlv -o /home mongorestore --drop  --host 172.16.201.74  --port 20001 --authenticationDatabase=admin -umgbackup -d test /tmp/liding/test/liding.bson #基于时间备份oplo

nodejs基础要点总结

这是一个md文件 大家觉得需要可以直接复制粘贴到md文件下用html打开看,这样效果会好点 ### 客户端的JavaScript是怎样的 - 什么是 JavaScript? +是一个脚本语言 +运行在浏览器(浏览器的js解析内核 v8) +实现用户的交互 (interactive) + 变量 赋值 循环 逻辑 判断 分支 对象 函数.... + dom 操作 + bom 操作 + ajax - JavaScript 的运行环境? +浏览器内核解析内核 es6 - 浏览器中的 JavaScript

java 接口的作用和好处

1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接口到底是有什么作用,为什么要定义接口. 好像定义接口是提前做了个多余的工作.下面我给大家总结了4点关于JAVA中接口存在的意义: 1.重要性:在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制.正是由于这两种机制的存在,才赋予了Jav

关于REST、RESTful、REST API的资料存储

在学习阿里云OSS的过程中,时常再OSS的官方文档上看到:REST或REST API或RESTful这些单词. 例如:OSS以HTTP REST API的形式对外提供服务,当访问不同的Region的时候,需要不同的域名. 于是,尝试去理解下究竟什么是REST.REST API.RESTful. 遗憾的是,在粗读了诸多的资料后,还是云里雾里,在这里先记录下这些资料吧. 在记录资料出处之前,先尝试总结下自己的理解吧. REST:一种设计.架构的思想(风格),并非一种技术,也不是工具.理解REST与否

判断你的应用在前台还是在后台

我的尝试 /** * 判断应用是否是在后台 */ public static boolean isBackground(Context context) { ActivityManager activityManager = (ActivityManager) context .getSystemService(Context.ACTIVITY_SERVICE); KeyguardManager keyguardManager = (KeyguardManager) context.getSys

[Java面试二]Java基础知识精华部分.

一:java概述(快速浏览): 1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒.PDA等的微处理器: 1994年将Oak语言更名为Java: Java的三种技术架构: JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发: JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础: JAVA

JavaSe基础知识总结

Java基础知识总结 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. -------------------------------------------------------------------------

Java基础知识精华部分(个人总结)

写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java语言代码把思路体现出来. 学习新技术的四点: 1,该技术是什么? 2,该技术有什么特点(使用注意): 3,该技术怎么使用.demo 4,该技术什么时候用?test. ------------------------------------------------------------------------------------