MySQL使用什么文件系统



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

谢谢你的帮助。

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

MySQL使用什么文件系统?

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

专业提示:出于性能原因,不要担心这一点,除非您的服务器运行在储藏室中的旧32位486机器上(或者除非您有数百万用户和数十亿行数据(。

在Linux系统上,所有POSIX文件系统都可以工作。fread是一个libc构造,它将转换为底层系统调用,如readmmapwrite等。

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

我在MySQL代码中看到的唯一一个文件系统测试是fallocate系统调用,它并不是在所有文件系统上都实现的(尤其是当它刚添加时,现在可能非常可用(。当fallocate不可用时,有一个实现解决方法。

最新更新