我想创建一个具有ajax搜索功能的网站。它将从JSON文件或数据库中获取数据。我不知道使用哪种技术来存储数据。 JSON文件或MySQL。基于一些快速研究,它将是大约60000个条目。因此,如果我使用JSON,文件大小将在30-50 MB左右,如果使用MySQL将有60000行。每种技术有哪些局限性,有哪些好处?
谢谢
答案 0 :(得分:1)
我似乎无法评论,因为我需要50个代表。评论,所以我会给它一个答案:
出于多种原因,MySQL会更受欢迎,其中最重要的原因是你不希望你的web服务器进程对文件系统具有写入权限(除了可能的日志记录),因为这是一种很容易被利用的方法。
此外,MySQL团队在诸如复制,并发数据访问,ACID合规性和数据完整性等方面投入了大量的工程工作。
想象一下,例如,您是否添加了要存储的任何数据结构所需的新字段。如果存储在JSON文件中,则必须有一些进程打开每个文件,添加字段,然后保存。将此与使用ALTER TABLE和字段的DEFAULT值的难度相比较。 (有点人为的例子,但你想在你的代码库中留下多少黑客来处理旧数据?)所以真的很直言,MySQL是一个数据库,而JSON不是,所以正确的答案是MySQL,不加思索。 JSON只是一种语言,几乎没有。 JSON从未被设计为处理并发连接或任何类型的数据操作之类的东西,因为它自己的功能是表示数据,而不是管理数据。
所以请使用MySQL存储数据。然后你应该使用一些编程语言来读取该数据库,并将该信息作为JSON发送,而不是实际存储在JSON中。
如果您将数据存储在文件中,无论是JSON格式还是其他任何内容,您都会遇到各种各样的问题,因为数据库开始用于同一件事情,人们已经不再担心这些问题了。大小限制,锁定,命名它。当你有一个用户时,这已经足够了,但是当你添加更多用户时,你将开始解决许多问题,你可能最终会编写一个完整的数据库引擎来处理这些文件,而你一直都在可能只是使用了一个实际的数据库。请注意!不要把我的话视为理所当然,我不是这个领域的专家,所以让其他人发表他们的答案,然后由此来判断。我认为这里有足够的人在stackoverflow上有更多的经验然后我做哈哈。这些并不完全是我的话,但是我已经从我所知道和知道的内容中取出了真实的部分并添加了我自己的一些知识:)有一个很棒的时间来制作你的网站
答案 1 :(得分:0)
对于MySQl:您可以使用查询选择特定行或特定列,根据键过滤数据,按字母顺序排序 缺点:需要一个REST API来获取数据,因为它无法直接访问,你必须使用php或python或任何编程语言来代替后端代码。
用于json文件:好处:没有使用GET http请求直接访问的后端代码。 缺点:没有过滤,订购或任何查询,你必须手动完成。