有一个词典数据,包括了每一个中文的基本信息,笔画,拼音等。数据大概是 4M 左右,用户每次使用只用到部分文字。如果使用 json 文件发送到客户端,可以使用浏览器缓存,用户使用时也不用每次都向服务器端请求数据,但是需要一次性拉取所有数据。如果把资料存进数据库,用户通过 api 获取所需要的数据,这样每次用户使用都需要拉取数据,但是只拉取用到的部分数据。哪一种方式会比较好?
有一个词典数据,包括了每一个中文的基本信息,笔画,拼音等。数据大概是 4M 左右,用户每次使用只用到部分文字。如果使用 json 文件发送到客户端,可以使用浏览器缓存,用户使用时也不用每次都向服务器端请求数据,但是需要一次性拉取所有数据。如果把资料存进数据库,用户通过 api 获取所需要的数据,这样每次用户使用都需要拉取数据,但是只拉取用到的部分数据。哪一种方式会比较好?
在决定是使用文件(如JSON文件)还是数据库来存储和提供数据时,需要考虑多个因素,包括数据量、数据访问模式、系统的可扩展性、以及是否需要实时更新数据等。针对您描述的情况,以下是一些考虑点和建议:
优点:
缺点:
优点:
缺点:
对于您描述的场景,如果数据集大小(4M)相对较小,且用户不太需要频繁更新数据,使用JSON文件并利用浏览器缓存可能是一个简单且有效的解决方案。这样可以减少服务器的负载,并加快用户首次访问后的数据访问速度。
然而,如果数据集未来可能显著增长,或者需要频繁更新数据,或者系统需要更高的可扩展性和灵活性,那么使用数据库并通过API按需提供数据将是更好的选择。这样可以更好地管理数据,并减少客户端的存储和内存压力。
最终的选择应基于具体的应用场景和需求。
先写结论:用哪种方案,取决于用户是如何使用你们的产品。
如果用户需要高频输入,也就是需要高频次地查询词典,那么先把整个词典,全部加载到本地,用户体验会更好。
否则,做成 API,进行远程调用,对于管理与维护会更好。
另外讲一下,使用单位名称,一定要准确。数据不是 4M,而是 4MB。B 的意思是 Byte。
4MB 的 json 使用 web 通用的 gzip 压缩后,应该只有 0.4 MB - 1.2 MB 的大小。
100Mbps 带宽(这就是你们去电信营业厅办理的100兆带宽),每秒的下载速度是 12.5 MB/s(这就是迅雷等下载工具显示的下载速度),0.4 MB - 1.2 MB 的文件,不到 0.1 秒就能完成下载。
8 回答4.6k 阅读✓ 已解决
6 回答3.3k 阅读✓ 已解决
6 回答2.3k 阅读
5 回答6.3k 阅读✓ 已解决
8 回答3.6k 阅读
3 回答2.4k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
我会选择 API,而不是一次性下载。