讨论数量:
我猜 Config + Cache 最快。
数据库需要网络通讯,像大多数 PHP 应用每次请求与数据库建立网络连接的过程就不够快了。而单纯用 Config 文件,每次请求过来都需要 Parse 一遍 Config,如果磁盘性能不够好,速度也不一定快。
如果程序运行需要的数据都在寄存器里,从寄存器读取最快
如果寄存器里也没有,从内存读取快
如果内存也没有:
直接从本地硬盘读取
- 读取 1 页会比读取多页快
- 固态硬盘会比机械硬盘快
通过网络请求读取
- 从已有连接读取比重写新建连接快
- 本地文件 socket 比 TCP 快
综上,若你采用配置文件方式
- 使用内存缓存(如 redis)直接 cache 到内存最快
- 使用 file cache 缓存到磁盘 + 使用 ssd 较快
若使用数据库方式
由于 php 的特性,根本没有数据库连接池的概念,每次请求都会新建一个 DB connection(同一请求中的多个数据库操作可能会共用连接)再由数据库引擎根据 sql 从磁盘/或缓存读取;
最终数据库都是需要读取 db 数据文件才能找到对应数据的,只是数据库引擎为我们做了很多优化,允许我们只获取大量数据的其中一段。
从这点看的话,你的 config 要是数据量小,直接存本地文件也是比数据库操作快的,当然内存优先。
那些说 DB 或者 Cache 块的都什么心态。。肯定读文件最快啊。。也就是读 配置更快
无论是读数据库还是读Redis,全都要走网络 IO,读文件至少还是个普通文件IO。。。
除非你文件特别大,一口气读不进内存。
如果程序运行需要的数据都在寄存器里,从寄存器读取最快
如果寄存器里也没有,从内存读取快
如果内存也没有:
直接从本地硬盘读取
通过网络请求读取
综上,若你采用配置文件方式
若使用数据库方式
由于 php 的特性,根本没有数据库连接池的概念,每次请求都会新建一个 DB connection(同一请求中的多个数据库操作可能会共用连接)再由数据库引擎根据 sql 从磁盘/或缓存读取;
最终数据库都是需要读取 db 数据文件才能找到对应数据的,只是数据库引擎为我们做了很多优化,允许我们只获取大量数据的其中一段。
从这点看的话,你的 config 要是数据量小,直接存本地文件也是比数据库操作快的,当然内存优先。