Php 数据库总是web数据存储的解决方案吗?

Php 数据库总是web数据存储的解决方案吗?,php,mysql,database,performance,web-traffic,Php,Mysql,Database,Performance,Web Traffic,我没有任何数据库方面的经验,但打算学习它并将其用于我正在计划的一个web项目 尽管如此,我从一位朋友那里得到建议,数据库的使用应该比我计划的要广泛得多。他相信将几乎所有的数据都保存在数据库中,我发现数据库对于静态文件中的用户数据(只是很小的数据片段)和页面内容数据等(不只是很小的数据片段的所有内容)来说是最方便的,而不需要任何知识来建立这种假设 更好的解决方案是什么?数据库中的最小数据量,或者尽可能多地找到有效存储的方法 使用静态文件和数据库之间是否存在性能差异 最佳解决方案是否取决于一般站点

我没有任何数据库方面的经验,但打算学习它并将其用于我正在计划的一个web项目

尽管如此,我从一位朋友那里得到建议,数据库的使用应该比我计划的要广泛得多。他相信将几乎所有的数据都保存在数据库中,我发现数据库对于静态文件中的用户数据(只是很小的数据片段)和页面内容数据等(不只是很小的数据片段的所有内容)来说是最方便的,而不需要任何知识来建立这种假设

  • 更好的解决方案是什么?数据库中的最小数据量,或者尽可能多地找到有效存储的方法
  • 使用静态文件和数据库之间是否存在性能差异
  • 最佳解决方案是否取决于一般站点流量

我打算结合使用PHP和MySQL。

数据库是保存严格属于数据的东西的合适位置。平面文件无法以与数据库中数据几乎相同的速度编制索引。另一方面,建立数据库需要更多的学习收入

像照片这样的二进制数据在数据库中不是很好

  • 我会说:数据库中的所有内容。数据库针对这类事情进行了优化。大多数博客软件也使用数据库存储内容,这是安全的。编辑:哦,二进制文件确实是更好的文件。但是MySQL也可以安全地处理它们。如果您有一张照片,可以将其存储在数据库中(因为它更易于维护),但是如果您拥有10.000张照片:使用文件,并保留数据库中文件的引用(它们的位置等)
  • 绝对:数据库再次得到优化。在后台,数据库使用文件:但是你不必再关心这个了
  • MySQL数据库对于一般站点流量来说是绝对好的

PHP和MySQL是一个不错的选择。

数据库不是持久数据存储的唯一手段,它们只是最常见的

有些文档/博客引擎根本不使用数据库。在创建、更改或评论页面时,将创建或修改静态html文件。例如

同样,您也可以使用纯内存存储系统,如果系统关闭,内存中的数据只需重建。或者转储内存内容,然后恢复,不涉及数据库。这通常在具有极高吞吐量或要求极低(微秒级)延迟的系统中完成

你的问题无法得到真正的回答,因为你所问的每一个问题的答案都是“视情况而定”,你可能会让它工作,无论你怎么做

我要说的是:在你真正遇到问题之前,不要太在意性能。您将遇到的大多数性能问题可能会归结为数据库中的索引和主键


PHP和MySQL是一个不错的选择。

如果您希望能够基于多个参数搜索特定数据,那么您确实需要使用数据库。SQL语言即为您提供了这方面的最佳解决方案。此外,无论何时创建和更新数据,数据库都是最佳选择,因为它提供了一些约束,以确保数据在一定程度上的唯一性。此外,数据之间的关系最好由数据库管理(使用外键等)


例如,用户配置文件最好存储在数据库中。用户控制的输入也必须存储在数据库中。另一方面,服务器端包含/模板文件最好作为普通文件存储在服务器的本地磁盘文件系统中,因为不需要在其中搜索。如果您希望将文件名与更多(元)信息(如菜单/子菜单)“链接”,则最终可以将文件名存储在数据库中。这同样适用于二进制文件(图像、下载等),您不希望将它们放在数据库中,除非您想要(非常)高的可移植性。

此外,如果数据操作需要事务,数据库几乎总是唯一好的解决方案。

Mysql是具有数据完整性的常见数据库之一。如果您计划存储大量数据,最好使用mysql。使用数据库时还应考虑安全性。Mysql非常安全且易于使用,您还可以在网上搜索一些更好的文档和示例。

在我看来,您需要一个不在数据库中存储数据的理由|但是我认为你也应该考虑非关系数据库,比如谷歌DATASTORE或其他类似的东西。

你的实际问题是什么?抱歉,如果还不清楚:什么是页面内容数据的最佳存储方法(任何类型,虽然不是二进制文件之类的更大的文件),在什么情况下?大多数情况下,42也是一个选项。这也许是替代方案,但它们更好吗?性能方面?在数据库中,你可以很容易地找到你要找的东西;在每次更改页面时都会修改的HTML文件中,您必须进行一些搜索以找到要更改的内容,然后进行更改。对于流量大的网站来说,这难道不是彻头彻尾的愚蠢吗?还有一些好的方面。我不同意对性能的担忧——平面文件与db是一种设计选择,你可以将自己编码到一个角落。事实上,现代mySQL和其他数据库可以很好地将jpg和png等文件放入二进制大对象中。人们喜欢将这些媒体资产放入普通文件中的原因,即使是在WordPress、Joomla!等系统中!,而Drupal则是将它们交付给浏览器的HTML模型非常以文件为中心。看看WordPress,Joomla!,或者Drupal将是一次极好的学习体验