我想创建一个网站,将有一个ajax搜索。它将从json文件或数据库中获取数据,我不知道使用哪种技术来存储数据。json文件或mysql。根据一些快速的研究,大约有60000个条目。因此,如果我使用json,文件大小将在30-50MB左右,如果使用mysql,文件大小将有60000行。每种技术的局限性和好处是什么?谢谢您
xzlaal3s1#
对于mysql:您可以使用查询选择特定行或特定列,根据键过滤数据,按字母顺序排列downside:need a restapi来获取数据,因为它不能被直接访问,您必须使用php或python或任何编程语言来获取后端代码。对于json文件:好处:没有使用gethttp请求直接访问后端代码。downside:no filtering ,排序或任何查询,您必须手动执行。
umuewwlo2#
我不能发表评论,因为我需要50个代表来发表评论,所以我会给出一个答案:mysql会因为许多原因而更受欢迎,其中最重要的一个原因是您不希望您的web服务器进程具有对文件系统的写访问权限(除了可能的日志记录),因为这是一种容易被利用的方法。此外,mysql团队在复制、并发数据访问、acid遵从性和数据完整性等方面投入了大量的工程精力。想象一下,例如,如果您在存储的任何数据结构中添加了一个新字段。如果存储在json文件中,则必须有一个进程来打开每个文件,添加字段,然后保存它。将此与使用带有字段默认值的altertable的困难进行比较(有点做作的例子,但是你想在你的代码库中留下多少黑客来处理旧数据?)所以说实话,mysql是一个数据库,而json不是,所以正确的答案是mysql,毫不犹豫。json仅仅是一种语言,甚至还不算什么。json从来没有被设计用来处理并发连接或任何类型的数据操作,因为它自己的功能是表示数据,而不是管理数据。所以使用mysql来存储数据。然后您应该使用一些编程语言来读取该数据库,并将该信息作为json发送,而不是实际将任何内容存储在json中。如果您将数据存储在文件中,无论是json格式还是其他格式,您将遇到各种各样的问题,自从数据库开始用于相同的用途以来,人们就不再担心这些问题了。大小限制,锁,等等。当你有一个用户时就已经足够了,但是当你添加更多的用户时,你就会开始解决很多问题,你可能会编写一个完整的数据库引擎来为你处理文件,而一直以来你都可以简单地使用一个实际的数据库。注意!别以为我的话是理所当然的,我不是这个领域的Maven,所以让其他人发表他们的答案,然后以此来判断。我想这里有足够多的人比我更有经验,哈哈。这些不完全是我的话,但我已经从我所知道的和知道的部分,并添加了一些我自己的知识:)有一个伟大的时间,使您的网站
2条答案
按热度按时间xzlaal3s1#
对于mysql:您可以使用查询选择特定行或特定列,根据键过滤数据,按字母顺序排列downside:need a restapi来获取数据,因为它不能被直接访问,您必须使用php或python或任何编程语言来获取后端代码。
对于json文件:好处:没有使用gethttp请求直接访问后端代码。downside:no filtering ,排序或任何查询,您必须手动执行。
umuewwlo2#
我不能发表评论,因为我需要50个代表来发表评论,所以我会给出一个答案:
mysql会因为许多原因而更受欢迎,其中最重要的一个原因是您不希望您的web服务器进程具有对文件系统的写访问权限(除了可能的日志记录),因为这是一种容易被利用的方法。
此外,mysql团队在复制、并发数据访问、acid遵从性和数据完整性等方面投入了大量的工程精力。
想象一下,例如,如果您在存储的任何数据结构中添加了一个新字段。如果存储在json文件中,则必须有一个进程来打开每个文件,添加字段,然后保存它。将此与使用带有字段默认值的altertable的困难进行比较(有点做作的例子,但是你想在你的代码库中留下多少黑客来处理旧数据?)所以说实话,mysql是一个数据库,而json不是,所以正确的答案是mysql,毫不犹豫。json仅仅是一种语言,甚至还不算什么。json从来没有被设计用来处理并发连接或任何类型的数据操作,因为它自己的功能是表示数据,而不是管理数据。
所以使用mysql来存储数据。然后您应该使用一些编程语言来读取该数据库,并将该信息作为json发送,而不是实际将任何内容存储在json中。
如果您将数据存储在文件中,无论是json格式还是其他格式,您将遇到各种各样的问题,自从数据库开始用于相同的用途以来,人们就不再担心这些问题了。大小限制,锁,等等。当你有一个用户时就已经足够了,但是当你添加更多的用户时,你就会开始解决很多问题,你可能会编写一个完整的数据库引擎来为你处理文件,而一直以来你都可以简单地使用一个实际的数据库。注意!别以为我的话是理所当然的,我不是这个领域的Maven,所以让其他人发表他们的答案,然后以此来判断。我想这里有足够多的人比我更有经验,哈哈。这些不完全是我的话,但我已经从我所知道的和知道的部分,并添加了一些我自己的知识:)有一个伟大的时间,使您的网站