MySQL与JSON - 为什么?

avi*_*bot 55 mysql json

我正在设计一个小型的网络应用程序/游戏.什么会更好:MySQL表或json文件?它们都存储信息.它们都可以通过PHP解析.有什么优点/缺点?

这就是我的意思:

username | password
-------------------
seefour  | abc123
Run Code Online (Sandbox Code Playgroud)

{
  "username":"seefour",
  "password":"abc123"
}
Run Code Online (Sandbox Code Playgroud)

编辑:哇,自从我提出这个问题以来仅仅3年了,看到自从我提出这个问题以来我已经成熟了多少,我感到很惊讶.从未来的我到过去的我,这就是为什么这两个不起作用.(如果当时像我这样天真的人可以参考这个)

我曾经认为这两者是可以互换的,因为它们几乎都是存储信息的方式,尽管当时存储和使用JSON文件对我来说更容易.数据库是独立的软件,可以更快地检索数据,并且不会随着时间的推移而变得臃肿.此外,在一个或两个文件中携带所有数据会使得最终导致数据被盗或丢失变得非常容易,因为数据库使用这些数据更加安全.从根本上说,数据不应该是您的代码的一部分; 它应该是您的代码使用的单独的东西.

此外,您将了解几年后的哈希和盐析,所以不要以明文形式存储密码!

Tee*_*kin 33

说实话,MySQL是一个数据库而JSON不是,所以正确的答案是MySQL,毫不犹豫.JSON只是一种语言,几乎没有.JSON从未被设计为处理任何类似并发连接或任何类型的数据操作,因为它自己的功能是表示数据,而不是管理数据.

因此,请使用MySQL存储数据.然后你应该使用一些编程语言来读取该数据库,并将该信息作为JSON发送,而不是实际存储JSON中的任何内容.

如果您将数据存储在文件中,无论是JSON格式还是其他任何内容,您都会遇到各种各样的问题,因为数据库开始用于相同的事情,人们已经不再担心了.大小限制,锁定,命名它.当你有一个用户时,这已经足够了,但是当你添加更多用户时,你将开始解决许多问题,你可能最终会编写一个完整的数据库引擎来处理这些文件,而你一直都在可能只是使用了一个实际的数据库.


小智 17

由于许多原因,MySQL会更受欢迎,其中最重要的原因是您不希望您的Web服务器进程具有对文件系统的写访问权(除了可能的日志记录),因为这是一种易于利用的方法.

此外,MySQL团队在诸如复制,并发数据访问,ACID合规性和数据完整性等方面投入了大量的工程工作.

例如,想象一下,如果您添加了要存储的任何数据结构所需的新字段.如果存储在JSON文件中,则必须有一些进程打开每个文件,添加字段,然后保存.将此与使用ALTER TABLE和字段的DEFAULT值的难度相比较.(有点人为的例子,但是你想在代码库中留下多少黑客来处理旧数据?)


Yog*_*ise 15

这两者并不具有可比性.

MySQL将数据存储在数据库中或实际上是数据库.JSON以要传递到服务器和从服务器传递到客户端的格式存储数据.Javascript/jquery可以使用JSON作为数据对象,但它们仅在页面的生命周期中存在于客户端.

因此,如果您想将数据存储为JSON(不推荐),您可能必须将它们存储为文本文件以保存数据.

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