首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >释放磁盘空间是否提高了MySQL的性能?

释放磁盘空间是否提高了MySQL的性能?
EN

Database Administration用户
提问于 2017-01-23 16:40:07
回答 3查看 2.1K关注 0票数 1

这里有一个MySQL主服务器,它没有为二进制日志设置任何类型的管理。随着时间的推移,磁盘空间(1TB)逐渐填满,人们注意到MySQL服务器的性能越来越差。当时,我没有在磁盘空间问题和性能之间建立任何联系。我自己来清理它,备份旧的二进制日志,并释放服务器上的空间。

现在转换(大部分)已经完成,服务器有了更多的空闲磁盘空间,我注意到性能已经提高了。我没有任何数字来支持这一点,但我注意到的一件事是,我们的一些应用程序的某些交易,过去在半定期的基础上,现在正在顺利进行。

我可以想象出对性能改善的几种解释:

  • 磁盘控制器不必搜索空闲空间。
  • MySQL能够更好地优化表、索引等。

但我真的不知道为什么。所以我有两个问题:

  1. 缺少空闲磁盘空间会影响MySQL性能吗?
  2. 如果是,为什么?
EN

回答 3

Database Administration用户

回答已采纳

发布于 2017-01-23 16:50:17

缺少空闲磁盘空间会影响MySQL性能吗?

当然,磁盘空间的缺乏可以防止写操作的发生。特别是当存储开始变得满(>90%,作为一个最小的大概值)并且磁盘是支离破碎的时候,搜索MySQL试图写入磁盘时甚至可能发生写入的地方可能需要一些时间。

这对于任何数据库平台或写入磁盘的任何应用程序都是如此。与其说这是一个MySQL行为,不如说它是一个存储行为。

我怀疑您对包含MySQL数据的文件系统(S)具有不同的存储磁盘质量。随着服务器变得更满,在IO方面,您将更频繁地受到最差磁盘性能的影响。

在清除旧的二进制日志之后,您很可能能够使用IO来提高存储层的性能,因为找到写入位置需要更短的时间。更短的时间来找到写作的地方意味着更快的事务性能。更快的事务性能意味着更少的超时和明显的应用程序功能延迟。

票数 2
EN

Database Administration用户

发布于 2017-01-23 17:04:52

数据库表文件使用的空间吗?如果是这样的话,如果查询必须从磁盘读取数据,则会影响性能。这就是为什么整理表以释放未使用的空间总是一个好主意。同样,性能将取决于您的服务器正在使用的磁盘类型。

票数 0
EN

Database Administration用户

发布于 2017-01-23 20:59:13

嗯,我不同意到目前为止Q&A中所说的大部分话。

操作系统,而不是磁盘控制器,决定放置下一个块的位置。操作系统的算法是非常线性的。对于大型表和小型表来说,这是一种轻微的开销。

碎裂总是会发生。操作系统和控制器,特别是RAID控制器,可以缓解这些问题。碎片整理通常比它的价值更麻烦。

企业的SSD设备采用“磨损平衡”,以防止过早磨损驱动器。当磁盘“几乎满”时,此任务一般会减慢驱动器的速度。旋转驱动器或便宜的SSD没有相应的问题。

应移除Binlog。我喜欢使用类似expire_logs_days = 14的东西(2周)。

如果您需要ALTER一个表,并且它需要复制该表,那么您确实暂时需要足够的磁盘空间来容纳整个表副本。因此,保持磁盘空闲空间大于最大的表。

"MySQL能够更好地优化表、索引等。“--除了ALTER之外,我看不出有什么理由这么说。

票数 0
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/161979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档