MySQL与JSON – 为什么?

我正在devise一个小型的networking应用程序/游戏。 什么会更好:MySQL表或JSON文件? 他们都存储信息。 他们都可以被PHPparsing。 有什么优点/缺点?

这就是我的意思:

username | password ------------------- seefour | abc123 

 { "username":"seefour", "password":"abc123" } 

编辑:哇,自从我问这个问题已经过去了3年了,从我问这个问题以来,看到我已经成熟了多less,真是令人惊讶。 从未来到我,这就是为什么这两个不行。 (如果当时像我这样天真的人可以参考这个)

我曾经认为两者是可以互换的,因为它们都是存储信息的很多方法,尽pipe当时对我来说更容易保存和使用JSON文件。 数据库是独立的软件,可以快速检索数据,并且不会随着时间的推移而变得臃肿。 而且,将所有数据保存在一个或两个文件中,这使得数据被盗或丢失的危险性变得极其容易,因为数据库对于数据库的安全性要高得多。 从根本上说,数据不应该是你的代码的一部分; 它应该是一个独立的东西,你的代码工作。

此外,您将学习哈希和腌几年,所以不要以纯文本存储密码!

说实话,MySQL是一个数据库,而JSON不是,所以正确答案是MySQL,毫不犹豫。 JSON只是一种语言,甚至没有。 JSON从来没有被devise为处理任何像并发连接或任何types的数据操作,因为它自己的function是代表数据,而不是pipe理它。

所以去用MySQL来存储数据。 那么你应该使用一些编程语言来读取数据库,并以JSON的forms发送这些信息,而不是实际存储任何东西在JSON中。

如果您将数据存储在文件中,无论是JSON格式还是其他任何文件,您都会遇到各种各样的问题,人们不再担心数据库开始被用于同样的事情。 大小限制,locking,命名。 当你有一个用户的时候已经足够了,但是当你添加更多的用户的时候,你将开始解决这么多的问题,你最终可能会通过编写一个完整的数据库引擎来处理这些文件,可以简单地使用一个实际的数据库。

由于多种原因,MySQL会更好一些,其中最重要的是你不希望你的Web服务器进程对文件系统有写访问权限(除了可能的日志logging),因为这是一个很容易被利用的方法。

而且,MySQL团队已经在复制,数据并发访问,ACID合规性和数据完整性等方面投入了大量工程。

想象一下,例如,如果你添加一个新的字段,在你存储的任何数据结构中都是必需的。 如果存储在JSON文件中,则必须有一些打开每个文件的进程,添加该字段并将其保存。 比较这与字段的默认值使用ALTER TABLE的困难。 (这是一个人为的例子,但是你想在代码库中留下多less黑客来处理旧数据?)

这两个不是真的可比。

MySQL将数据存储在数据库中,或者实际上是一个数据库。 JSON以一种格式将数据存储在服务器和客户端之间。 Javascript / jquery可以使用JSON作为数据对象,但它们只存在于客户端的页面生命周期中。

所以如果你想把数据存储为JSON(不推荐),你可能不得不把它们存储为文本文件来保存数据。

您应该将数据存储在数据库中。 使用函数将其转换为JSON格式,然后将其传递给JavaScript的网页以供用户呈现。