数据库设计 – SSD是否会降低数据库的实用性

前端之家收集整理的这篇文章主要介绍了数据库设计 – SSD是否会降低数据库的实用性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我今天只听说过罗伯特·马丁,看起来他在软件世界中是一个值得注意的人物,所以我并不是说我的头衔看起来好像是点击诱饵或者我把话放在嘴里,但这只是我如何通过有限的经验和理解来解释我从他那里听到的内容.

我正在观看video(软件架构),Robert C. Martin的演讲,在视频的后半部分,数据库主题是主要焦点.

根据我对他所说的内容的理解,似乎他说SSD会降低数据库的实用性(相当大).

为了解释我是如何得出这种解释的:

他讨论了如何使用HDD /旋转磁盘,检索数据的速度很慢.但是,他说,现在我们使用固态硬盘.他从“RAM即将来临”开始,然后继续提及RAM磁盘,但后来说他不能称之为RAM磁盘,因此只能说RAM.因此,对于RAM,我们不需要索引,因为每个字节需要相同的时间才能得到. (本段由我解释)

因此,他建议RAM(如在计算机内存中)作为DB的替代品(因为我解释他的陈述)是没有意义的,因为这就像说在应用程序的生命周期内所有记录都在内存中处理(除非您按需从磁盘文件提取)

所以,我采用RAM思考,他的意思是SSD.因此,在这种情况下,他说SSD会降低数据库的实用性.他甚至说:“如果我是甲骨文,我会感到害怕.我存在的根本原因正在消失.”

从我对SSD的一点了解,不像硬盘驱动器,这是O(n)寻道时间(我认为),SSD接近O(1),或几乎是随机的.所以,他的建议对我很有意思,因为我从未想过这样.
几年前我第一次被介绍到数据库时,当一位教授描述了常规文件系统的好处时,
我总结说,数据库的主要作用本质上是一个非常索引的文件系统(以及优化,缓存,并发访问等),因此,如果SSD中不需要索引,这种方式确实使数据库不那么有用.

尽管如此,我认为很难相信它们变得不那么有用了,因为每个人仍然使用DB作为应用程序的主要点,而不是纯粹的文件系统,并且觉得他过于简单化了数据库的作用.

注意:我确实观察到最后,以确保他没有说出不同的东西.

以供参考:
42:22是整个数据库主题出现的时候,
43:52他开始说“为什么我们甚至有数据库

This答案确实说SSD可以大大加快数据库速度.
This问题询问优化如何变化.

对于TL;我的问题是,在服务器市场中广泛使用SSD(无论是即将发生还是已经发生)的出现是否会降低数据库的实用性?

这似乎是主持人试图传达的是,使用SSD,人们可以将数据存储在磁盘上,而不必担心像旧SSD那样检索它的速度有多慢,就像SSD一样,寻道时间接近O(1)(我认为).因此,如果这是真的,那么假设会失去其中的一个优势:索引,因为索引更快的搜索时间的优势消失了.

解决方法

当您使用SSD时,数据库中应该调整一些内容.例如,对于Postgresql,您可以调整effective_io_concurrency和random_page_cost.但是,更快的读取和更快的随机访问并不是数据库所做的.它确保

> ACID (Atomicity,Consistency,Isolation,Durability)
>某种形式的并发控制,MVCC (Multiversion concurrency control)
>库的标准化访问(XQuery或sql)

他对索引的看法不对.如果可以将整个表读入ram,则索引仍然有用.不相信我?我们来做一个思想实验,

>想象一下,你有一个带有一个索引列的表.

CREATE TABLE foobar ( id text PRIMARY KEY );

>想象一下,该表中有5亿行.
>想象一下,所有5亿行被连接成一个文件.

什么更快,

> grep’keyword’文件
> SELECT * FROM foobar WHERE id =’keyword’

这不仅仅是关于数据的位置,而是关于您如何订购以及您可以执行哪些操作. Postgresql支持B-tree,Hash,GiST,SP-GiST,GIN和BRIN索引(以及通过扩展的Bloom).你认为所有的数学和功能都消失了,因为你有更快的随机访问权限,这是愚蠢的.

猜你在找的MsSQL相关文章