SSD的问世是否对数据库优化有任何影响?


26

今天,我浏览了一本有关SQL Server优化的书,看来其中有些想法是基于线性存储模型的。由于SSD具有完全不同的存储模型,它们是否会以任何方式改变人们对数据库调优或优化的看法?


借助SSD,似乎您需要进行更多优化以最大程度地减少磨损,而不是提高原始性能……
Trezoid 2011年

有趣的想法和一些很酷的答案,+ 1
德鲁

Answers:


9

是的,他们确实改变了比赛。基于旋转磁盘的特性(例如寻道时间旋转延迟)的优化可能与SSD驱动器无关。FITME 2010上发表的最新论文*基于SSD的特性提出了一种新的查询优化算法。

但是,这些更改可能是数据库开发人员可以有效实施的低级更改(例如,针对存储和检索算法)。它们可能不会对数据库用户造成太大影响。

* IEEE Xplore-基于闪存的数据库的面向列的存储查询优化


3
是的-但是,当我们将所有内容都放入ram时,大多数数据库优化已不复存在。一旦64Gb的RaM变得比SQL专家便宜,事情就已经改变了,不确定会增加多少SSD
Martin Beckett

3
@马丁同意。另一方面,最近已经决定转向水平(云计算等)而不是垂直(惊人的$ 500k DB盒)扩展。分布式系统可以从这种局部线性优化中获得全局非线性性能的提高。通常,这通常也是更好的成本模型。
Rein Henrichs

8

性能

SSD表现出色:它们不必寻找,吞吐量也越来越高。大多数处理磁盘的软件都在优化的程度上进行了优化,以减少同步查找的次数。这样做会引入许多复杂性。随着对持久性存储进行快速,无寻觅的写入的出现,新的数据存储系统将不再需要这种复杂性。

耐用性

SSD目前故障率很高。您的SSD将失败。您的SSD的故障率要比磁盘高得多。您必须通过复制,备份等解决此问题。这引入了自己的复杂性。


1
嗯什么?SSD的故障率高吗?SSD的年故障率大大低于HDD。到目前为止,很少有人设法用完SSD上的可用写入,尤其是使用更高级的控制器(例如LSI的SandForce)。
Mircea Chirea,2012年

5

全面降低存储价格会产生更深远的影响。

在使用SQL之前,我们有超级优化的层次结构和网络数据库,DBA必须仔细计划数据的轨迹和柱面布置。

SQL数据库的效率要低得多。但是现在磁盘便宜,庞大,快速,我们几乎不在乎。

NoSQL(“文档”)数据库的效率可能比SQL低一些,因为SQL逻辑模式与文件或表空间等底层物理模式之间没有逻辑到物理映射的功能。而且我们几乎不在乎。

由于使用NoSQL数据库对我们整体系统架构的方式造成的更改,SSD性能的提高可能会丢失。


2

对SSD进行任何优化的主要问题与它们如何写入数据有关。传统的硬盘驱动器通常将数据存储在大约512字节的小扇区中,并且实际上可以直接在该级别甚至更低的级别上操作扇区。

SSD在写入方面有一些缺点:

  • 最小块写大小约为4-8KB。
  • 只能在通常为256KB的整个页面上执行写操作。
  • 只能写入空块。

一种典型的噩梦场景,称为写入放大,是当您要将单个字节写入磁盘上已使用某些块的位置时。为了在那里写,您需要首先将整个256KB页面复制到内存,擦除整个块,更改页面中的单个字节,然后写回整个修改后的256KB页面。因此,为了写入单个字节,大约有半兆字节的“流量”!

在SSD,控制器甚至操作系统级别都实现了许多针对此问题的优化,但是毫无疑问,DBMS可以通过针对特定工作量身定制这些优化而受益。

但是,这不是数据库用户(例如,在其应用程序中使用数据库)所要考虑的事情,因为它将高度依赖于DBMS级别的设计/实现决策。



1

是的,出于每个人都说过的原因。

我在听一个播客说,如果能够正确解决分离问题,那么像Oracle,SQL Server等大型RDBMS就会开始被“淘汰”。检测其是否为SSD驱动器,并进行相应优化。

缓存和写入数据中内置了许多额外的代码,这些代码不再需要了。

更有趣的是RAMSAN及其变体。基本上,这是一个由RAM芯片制成的硬盘驱动器,具有内置的X个小时UPS,并且能够对长期HDD存储进行后台写入。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.