MySQL使用什么文件系统?

时间:2018-11-25 18:48:00

标签: mysql filesystems disk

将数据库数据保存到Linux OS上的磁盘时,MySQL是否使用fread,read,mmap或其他文件系统?还是MySQL正在进行测试以查看使用哪个?这与保存配置数据无关。我对实际的数据库感兴趣,最好是InnoDB。

感谢您的帮助。

编辑:更具体地说,我对MySQL中的c / c ++源代码感兴趣,该源代码进行了将数据保存到InnoDB数据库的实际调用。可能的选项包括fread,read,mmap等。

2 个答案:

答案 0 :(得分:0)

  

MySQL使用什么文件系统?

MySQL访问方法代码(InnoDB,MyISAM,AriaDB和其他代码)使用主机操作系统上主机卷的本机文件系统。 Windows上的NTFS,U ** X系统上的ext4fs等。有效的平台端口使用各种I / O技术,包括内存映射,分散/聚集以及普通的读写系统调用,并与文件系统的日记功能集成在一起。使用的确切技术取决于查询的类型,访问方法和缓存的状态。

专业提示:出于性能原因,请不要担心此问题,除非您的服务器运行在仓库中发现的旧的32位486计算机上(或者除非您有数百万的用户和数十亿的用户)数据行数)。

答案 1 :(得分:0)

在Linux系统上,所有POSIX文件系统都可以使用。 fread是一个libc构造,将转换为基础的系统调用,例如readmmapwrite等。

在Linux VFS(虚拟文件系统)层中实现读取,mmap,写入操作,然后将它们映射到文件系统代码中的特定操作。因此,任何POSIX文件系统都可以与MySQL一起使用。

我在MySQL代码中看到的唯一文件系统测试是一个fallocate系统调用,该调用并未在所有文件系统上实现(尤其是在首次添加时,现在可能已经可以使用)。当fallocate不可用时,有一种解决方法。