我想知道使用mysql还是使用文件存储数据更好?什么更安全,什么更快?我说的是php和mysql。
4 回答
这完全取决于您的要求和设置。
对于不需要复杂查询的少量数据,文件更快。站点缓存就是一个例子。
对于更大的数据集或具有更多结构的数据集,数据库将使您能够以更高级的方式查询数据。
在安全方面,文件可以受到保护(使用权限)并存储在 Web 根目录之外。数据库可以锁定到某些主机,并且可以拥有具有不同角色/权限的用户。
如前所述,这取决于数据,还取决于您当前的瓶颈。
如果您的应用程序在已经缺乏 IO 资源的服务器上运行,那么您可能更喜欢网络类型的存储。
安全问题更多地与设置和良好实践相关,而不是与所使用的技术相关。如果您编写文件,则需要确保它们不可下载。如果你使用数据库,你需要照顾SQL注入等等......
我想强调的是,您不仅限于文件和关系数据库。
您还可以使用memcached将数据存储在内存中(例如缓存的理想选择)。 像Redis这样的NOSQL数据库也是一种选择。
- 数据库(即 MySQL):
优点:可搜索,可以处理复杂和结构化的数据,可以托管在不同的服务器上,持久性
缺点:慢
典型用法:业务数据存储 - 文件:
优点:很容易设置,相当快,持久
缺点:不适合处理非常复杂的数据,不可搜索,会消耗服务器主机IO资源,不是那么快
典型用法:日志文件,模板缓存文件 - NOSQL(即Redis):
优点:快速,可以在远程主机上设置,持久
缺点:不易搜索,不适合强结构化数据
典型用法:性能黑客(搜索) - 内存:
优点:最快的!,可以在远程主机上设置缺点:与 NOSQL 相同 + 不持久
典型用法:对象缓存
取决于数据。
除非它真的很简单,否则你也可以使用 mysql。确实没有明显的缺点。
一般来说,您需要某种数据库或对象存储来存储您的数据,因为它提供了一个干净的接口来检索您的数据。但是,它非常依赖于您尝试存储的数据。
如果您正在制作一个包含用户可修改数据的网站,您可能想要使用 MySQL 或其他一些数据库。如果您只是在谈论键入一些文档,那么数据库的开销可能比它的价值更麻烦。
为了提供更好的答案,我们需要知道您存储的数据类型以及您希望如何访问它。