我接受从客户端(Web和移动设备)到PHP服务器的相当复杂的表单数据。当我收到数据时,我不需要以任何方式处理它,我只需要将它存储在某个地方并让客户知道表单已成功提交。我稍后批量处理数据。
快速存储传入表单数据的最佳方法是什么?
在这种情况下,两个函数似乎相关:
此外,不是将此序列化数据发送到数据库,而是将其附加到某个文本文件会快得多,对吗?
有人能给我更多关于这些事情的信息吗?
答案 0 :(得分:0)
如果你只是需要从POST获取文本,你可以获得普通的POST请求而无需任何序列化。
echo file_get_contents('php://input');
附加到文件非常快。但请记住,您还需要管理此文件。
P.S。看起来像是过早优化。
答案 1 :(得分:-1)
我会考虑
base64_encode(serialize($_POST));
// assuming $array is the returned mySQL column (BLOB type)
unserialize(base64_decode($array));
请注意,base64_encode是可选的,取决于存储的数据,可能需要也可能不需要编码。
答案 2 :(得分:-2)
保存数据的最快方法不是使用PHP,而是将C扩展写入您正在使用的任何Web服务器,这只会保存文件。最快的不是最好的。除非您每小时都在谈论数万亿次请求,否则最好至少部分内联处理这些请求,并将它们存储到关系数据库或对象数据库中。我会亲自使用MySQL或Mongo,因为我对它们有一些经验,但许多其他数据存储可能是合适的。
尝试通过“简单地附加到文件”来智能数据库可能会让您遇到很多麻烦。数据库已经对并发操作,优化写入,缓存,事务支持等提供了很多支持......如果你同时“追加”来自多个Web请求的文件,你最终会得到损坏的数据。
我知道这有点不回答,但根据我的经验,你提出的问题类型充其量是错误的。如果你真的绝对需要“以最快的方式”做一些事情,那么你可能不需要在Stack Overflow上询问它,因为你已经进入了一个前沿的开发环境,你已经有了十年+有关创建此类实现的经验。