PHP 是读取数据库在模版遍历快还是 从文件读取html快? 财富值76

2016-09-27 18:55发布

之前在做一个商城网站,有一个模块是定制首页,时间赶直接提取页面html内容用php写进文件里,首页读取的时候,再读取那个文件输出给模版。题目的读取数据库指读取定制数据,不是html内容。

现在不赶时间了,想知道:

  1. 如果在多人访问并发高的情况下,是读取文件快?还是从数据库读取数据快?

  2. 如果写入文件内容多,文件比较大的情况是不是读取时间慢?

  3. 我用的TP框架,直接在模版里<include file="Public/**" />会不会更好

  4. 再问一下,想测试并发要怎么测试?要搜哪些关键词?

ps:刚出来工作的小白,求回答指教

付费偷看设置
发送
20条回答
helloshirl - 这个人很懒,什么都没留下
1楼 · 2016-09-27 19:29.采纳回答

针对你的问题,

TP自带简易缓存方法S(), 默认为文件驱动, 如果缓存驱动用Memcahced或Redis的话, 应该会比文件快, 前提是Memached或Redis服务器在本机上, 或在千兆以上的局域网内

CDN

TP框架的模板是进过编译的,也就是说,实际执行时不会使用你写的模板文件,而是使用编译后的模板,所以你大可放心的使用include,不必在意性能的问题。

首先, 内存 >> 文件
其次, 数据库也是把数据存放在文件的(当然,数据库有查询缓存)
非关系型的数据, 当然是存文件快
但同个文件夹下不可存放大量文件(寻址慢),可使用文件名目录分割, 如:
文件名 dsaferdfsasxfsfsdf.dat
取前两字符创建一级目录, 存放为
ds/dsaferdfsasxfsfsdf.dat
lokljljoiomlkml.dat >> lo/lokljljoiomlkml.dat

ob_start

首先,它们速度区别不大,文件快点,但是如果都放数据库好管理一些。

并发测试准确来说应该叫压力测试,搜索压力测试方案即可。

其次呢,谁快不重要,这些CMS类型的网站,可以通过静态化来进行优化,静态化后和页面生成时间就无关了。

mishen - whatsns产品经理
10楼-- · 2016-09-27 19:15

数据库的数据也是存在文件里的,不考虑数据库做内存缓存的情况,单纯读文件当然要比读数据库快,因为数据库还要经过查询过程以及其他处理流程。但是,如果文件数量过多时,还需要考虑文件系统的查询速度,这个速度在文件过多时是慢于数据库查询的。

如果写入的文件内容多,这个没办法,我们一般会使用Cache等来做整体架构方案,而非单纯写入这么简单