当前位置: 首页 > article >正文

【Java】关于物理存储方式有几种方式的一些讨论

我们知道,数据结构可以分为逻辑结构和物理结构[1, 2]。网络上的文章,关于物理结构到底分为几种,有哪些,各种讨论不一而足。我阐述一下我自己的理解和看法。

物理结构是最基础的,计算机分配存储的方式。而逻辑结构,是人们抽象出来,实现了不同功能的结构,逻辑结构,往往可以将其拆分成基础的物理结构。比如一颗二叉树(逻辑结构),我们可以使用数组,也可以使用经典的链表实现[3, 4]。

我个人理解,物理结构只有两种,顺序存储,如数组。或者链式存储,如单向链表,双向链表等。

例如这篇文章[5]中,说计算机中有四种存储,顺序存储,链式存储,散列,索引。

我以为是不恰当的,因为例如散列,比如经典的HashMap,就是所谓的散列表,它的实现,是基于链表+数组实现的。对于计算机来说,也是需要通过计算key才能得到value在内存中的位置;

至于索引,以mysql为例,索引的实现按引擎区分有多重方式[6],比如MyISAM的非聚簇索引,通过散列实现。InnoDB的聚簇索引,通过B-Tree实现,本质上都是以链式存储为根基,通过逻辑组织出需要的功能。我认为这实在称不上是基础的物理结构。

通过上述问题,我们也能看出,逻辑结构,往往都是需要通过计算或者代码处理才能组织出逻辑结构。而物理结构,不需要计算机去计算下一个存储点的位置,可以简单的获取到存储的位置。个人以为,这也是区分逻辑结构和物理结构的一种很好的方式。

以上就是我关于物理存储方式的一些讨论,如有说的不对的地方,希望大家批评指正

参考文章
[1],数据结构中逻辑结构和物理结构的区别和联系是什么
[2],数据库逻辑结构和物理结构的区别?
[3],用数组表示二叉树
[4],使用二叉链表实现二叉树的基本操作
[5],数据结构中的逻辑结构以及物理结构
[6],MySQL索引详解之索引的存储方式


http://www.kler.cn/a/14082.html

相关文章:

  • 【hello Linux】进程程序替换
  • 两大消息爆出,币圈正在响应全球“去美元化”行动
  • python算法中的深度学习算法之前馈神经网络(详解)
  • 制造型企业为何需要MES管理系统,企业怎样选择合适的MES
  • Linux_红帽8学习笔记分享_7(Crontab计划任务+NTP时间同步服务器)
  • 【Python】matplotlib设置图片边缘距离和plt.lengend图例放在图像的外侧
  • 一级结构规范 合集
  • 【分布式搜索引擎02】
  • 【设计模式】23种设计模式之结构型模式
  • Hi3861 硬件 i2c 驱动 oled
  • MCAL知识点(二十二):LIN MCAL驱动配置详解
  • 2023年工商管理在职研究生择校、择专业指南
  • day18_集合
  • 淘宝iOS拍立淘微距能力探索与实现
  • 阿里云ecs服务器挂载oss
  • 【时间复杂度和空间复杂度】
  • HTML5 <meter> 标签、HTML5 <mark> 标签
  • PHP调用淘宝app商品详情原数据 API 接口
  • 大家经常说的java八股文到底是什么?让我来总结一下吧!
  • 操作指南|如何创建x-chain DAO