在 MySQL 集群上,将 MySQL 数据库文件和 binlog 存储在不同的分区中是否有意义?
(这是关于同一个物理磁盘上的分区。如果它们在不同的物理磁盘上,答案是肯定的——所以允许并行读写。)
人们可能会认为,通过将 datadir 和 binlog dir 分隔在不同的分区上,如果一个被填满,另一个继续有空闲空间。但实际上这并不重要,因为这两个事件中的任何一个都会停止复制或完全停止 MySQL 服务器。另一方面,datadir 和 binlogs 的单个分区将允许它们共享可用的可用空间,从而为它们提供更多的扩展空间。
因此,共享分区似乎没有任何特别的缺点,但可能有一些优点。还有什么要考虑的吗?
对于将单个物理驱动器分成两个分区,我只看到一个很大的缺点(正如您所指出的):您可能会用完一个分区上的空间,而另一个分区上还有空间。(这个我见过很多次。)
对于多个驱动器,我建议条带化比手动将此文件/日志/表/等与该文件/等分离更好。在许多情况下,操作是顺序的(首先扫描索引,然后进入数据),使得手动拆分没有任何好处。条带化避免了“空间不足,但不是真的”问题。
让我们从不同的角度来处理您的问题...当收益值得怀疑时,为什么要给自己更多的工作(分区维护)?
如果你有一个 HDD 和一个 SSD,那么将日志(顺序访问)放在 HDD 上,将数据+索引(随机访问)放在 SSD 上。