首页 > 编程知识 正文

数据库可以存储图片吗,数据库原理及应用

时间:2023-05-06 03:53:35 阅读:40041 作者:1444

树b和树b主要用于在磁盘中创建快速索引,如文件系统和数据库。

数据库中数据的存储主要有两种方法。 一个是原始存储,另一个是列存储。

原始存储是指数据库中的数据行存储在连续的磁盘块中。 同样,列存储是指一列数据一起存储。

原始存储的优点是记录集中,适合事务处理。 缺点是聚合查询慢。 因为聚合包含多个行记录,所以必须从磁盘的多个不连续块读取数据。 多次IO访问导致查询变慢。

列具有聚合查询快、聚合计算快的优点。 该列中的数据组合在一起,因此IO只需读取一次或几次即可将数据加载到内存中。 缺点也很明显,不适合工作。 如果更新每个表中的几个字段,则这些字段中的数据不是连续存储的,因此必须多次读写磁盘。 更新时,可以在独立环境中锁定内存屏障,但在分布式环境中尝试保持一致性会很难做到,而且开销非常大。

索引是对数据库表中一列或多列的值进行排序的结构,如student表的名称(name )列,其中d独立于表的结构,因此可以快速查找位置信息。 我们知道二分搜索非常快,但前提是数据已经排序。 如果直接索引直接利用表中某列的数据,则在将数据插入到表中时,会移动其他数据以保持顺序一致,从而导致额外的开销。

索引的数据结构

虽然有些离过一次婚搜索树的搜索效率很高,但缺点并不适合磁盘搜索。 还是那个老瓶颈。 由于离过一次婚搜索树太高,访问磁盘的次数越多,就会读取它,但对磁盘的访问速度(准确地说是查找速度)太慢了。 所以,两股改善了树的记忆性,树的高度下降,成为了研究的方向,由此产生了b树和b树。

b树降低树的高度,在节点上存储很多数据。 b树中的每个节点都是索引项。 例如,订单ID、序列号组合等。 对于行数据库,可以对存储在磁盘上的记录进行索引。 如下图所示

b树是对b树的改进。 只有叶节点存储数据,其他节点只进行查询。 这种优点是,虽然牺牲了空间的一部分,即非叶节点,但大大提高了删除和插入的效率。 删除的时候,只需要删除叶子节点就可以了,往往非常快。 像b树一样,必须做出非常复杂的变形。 插入后,b树最多也只涉及树的一个路径。 这里善于在空间里改变时间的思想。

另一方面,叶节点之间通过链表连接,能够很好地查找支持范围。 当然B-Tree也是很好的支持范围。 HashMap,单个哈希表搜索非常高效,不需要数据排序。 但是,对于范围搜索,这种数据结构不支持聚合搜索,也不支持排序和模糊匹配。

MySQL支持多个存储引擎、InnoDB引擎,并使用b树。 某些特定数据经常访问行数据,也可能添加基于hashmap的引擎,但这些数据都是在MySQL内部进行的。

参照:

[0]数据库索引

[1]数据库文件系统实例: MySQL的b树和b树有什么区别?

[2]高性能MySQL

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。