汐轩阁祖 2015-06-10 01:45 采纳率: 83.3%
浏览 2101
已采纳

哈希表比二进制有什么优势吗?数据库为什么要选用它?

据说各大数据库都是以哈希表为基础的,但是哈希表不是不能直接寻址吗,存取效率应该比二进制低不少,为什么要选用哈希表而不是直接二进制?

  • 写回答

5条回答

  • threenewbee 2015-06-10 03:20
    关注

    哈希表是一种折衷。当然,直接寻址是好,问题是,你需要一种数据结构,还能不断添加、删除、修改吧。
    再说,寻址是文件的角度来说的,和哈希表没有关系。
    数据库用哈希表,当然不全用哈希表,同时数据库也是用的二进制文件。这不矛盾。我说的二进制是相对文本文件来说的。确切地说法,不是二进制,而是随机文件。
    所谓随机文件,就是你可以随机定位和访问的文件。文本文件不是随机文件,比如说读取文本第100行,你没办法知道第100行的地址,或者说相对文件头,它中间隔了多少字符,你只能从头读取一次,这样效率很低。
    所有的数据库,都使用二进制文件(当然,二进制文件也有不能随机访问的),或者进一步说,是随机文件作为基本的文件格式。
    在此之上,用什么算法,比如哈希表、索引、簇等等,那是另一回事了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况