mysql使用什么文件系统?

mzaanser  于 2021-06-17  发布在  Mysql
关注(0)|答案(2)|浏览(441)

在linux操作系统上,mysql在将数据库数据保存到磁盘时是否使用fread、read、mmap或其他文件系统?或者mysql正在做一个测试,看看用哪一个?这与保存配置数据无关。我对实际的数据库感兴趣,最好是innodb。
谢谢你的帮助。
edit:更具体地说,我对mysql中的c/c++源代码感兴趣,它执行将数据保存到innodb数据库的实际调用。可能的选项有fread、read、mmap等。

hi3rlvi2

hi3rlvi21#

在linux系统上,所有posix文件系统都可以工作。fread是一个libc构造,它将转换为下面的系统调用,如 read , mmap , write 等。
读、mmap、写操作在linux vfs(虚拟文件系统)层中实现,然后Map到文件系统代码中的特定操作。所以任何posix文件系统都可以与mysql一起工作。
我在mysql代码中看到的唯一文件系统测试是 fallocate syscall并不是在所有的文件系统上都实现的(特别是当它第一次被添加时,它现在可能非常可用)。当 fallocate 不可用。

093gszye

093gszye2#

mysql使用什么文件系统?
mysql访问方法代码(innodb、myisam、ariadb等)使用主机操作系统上主机卷的本机文件系统。windows上的ntfs、u**x系统上的ext4fs等。合格的平台端口使用各种i/o技术,包括内存Map、分散/聚集和普通读写系统调用,并与文件系统的日志功能集成。使用的确切技术取决于查询的类型、访问方法和缓存的状态。
专业提示:除非您的服务器运行在一台旧的32位486机器上(或者除非您拥有数百万用户和数十亿行数据),否则不要出于性能原因担心这个问题。

相关问题