从数据库中读取更加昂贵,毫无疑问.
平面文件在哪里?在文件系统上.在最好的情况下,它们最近被访问过,因此操作系统已将文件缓存在内存中,它只是一个内存读取,可以将它们放入PHP程序发送给客户端.在最坏的情况下,操作系统必须在程序可以使用之前将文件从光盘复制到内存.
数据库中的数据存在于何处?在文件系统上.在最好的情况下,它们最近被访问过,因此MySQL在内存中有该表.但是,你的程序无法直接获取该内存,它需要先与服务器建立连接,来回发送认证数据,发送查询,MySQL必须解析并执行查询,然后从内存中获取行并将其发送到您的程序.在最坏的情况下,操作系统必须从磁盘上的数据库表文件复制到内存,然后才能获得要发送的行.
正如您所看到的,这些场景几乎完全相同,只是在将数据从内存或磁盘中取出之前,使用数据库会涉及连接和查询的额外开销.