为什么数据库分区不起作用? 摘自thedailywtf.com

原始链接。 http://thedailywtf.com/Articles/The-Certified-DBA.aspx 。

文章总结: DBA提出了严格的分区方法,每个磁盘10个分区(3个实际磁盘和3个RAID)。 统计数据显示性能不是最佳的。 然后,DBAbuild议每个磁盘1个分区的替代(添加更多的磁盘)。 这也失败了。 系统pipe理员然后设置一个单一的磁盘,单个分区,并保存一天。

没有提到磁盘的大小,但今天给出了典型的磁盘大小(大约100GB),分区; 将是巨大的,这让我感到惊讶,一个单一的磁盘与所有分区跑赢。

最初我怀疑数据是分开的,因此读取速度更快。 但是,随着时间的推移,所有插入和更新都会发生,性能如何不会降低? 在reddit上看到这个,但是解释是以主轴/盘片为中心。 这篇文章没有提到。 还有其他原因吗? 我只能猜测,表使用不正确的散列分布导致跨磁盘的不均匀分配(错误的分区); 这会增加获取次数。 有什么想法吗?

整个事情都是无稽之谈,对不起。

如果你有6个磁盘,你可以试试

  • 3对RAID-1。 每个都有一个分区。 第一个分区为system / tempdb,第二个为数据,第三个为事务日志。

  • 1对RAID-1和1个4磁盘RAID-10。 一个分区。

  • 如果数据大部分是只读的,一个大的RAID-5卷,一个分区。

无论如何,在不同的卷上使用同一个盘片是没有意义的。

要理解为什么单个分区将总是胜过同一个驱动器上的多个分区(所有其他都是相同的),您只需要考虑头部组件需要做什么。 总是会有很多来回移动,但有了多个分区,移动程序集的要求将会更大。 由于这是磁盘访问速度最慢的部分,所以对性能的影响非常大。

整个分区的事情听起来很愚蠢。 抱歉。 将数据分区在同一个磁盘上(即多个分区中的多个文件)与使用一个分区中的所有文件相比不会以任何方式减lessIO。 我也觉得有趣的是,DBA没有用testing工具来进行IOtesting,以检查光盘设置的真实性能。

从理论上说,无论是多么霸道,多碟盘片的IO容量(而且越来越多地购买它们)总是比单个盘片要高很多 – 所以这里真的很腥意。 不要说这篇文章是错误的 – 只是我错过了一些推理的坏performance。

文章中有很多缺失的信息,但是听起来像DBA认为他正在尝试使用块设备(而不是文件系统)来呈现数据库,但是在某些SAN或其他共享存储上这样做设备。 不幸的是,他也是一个白痴。

也许“authenticationDBA”是一个AS / 400或AIX难民…… IBM系统pipe理员工具用于让您根据磁盘上的物理位置分配存储空间。

我曾经在十年前(正确地)用Sun盒子上的Informix数据库来做这个事情,当时我的雇主买得起Veritas Filesystem太便宜了。 当系统出现故障时,让数据库pipe理磁盘将避免运行4小时以上的UFS fsck。