我有一个汽车网站,在美国各地有超过200,000多个汽车列表。我从两个来源获取我的数据CarSeats和CarsPro每晚更新。两个源都包含大约100,000个JSON格式的详细列表。两个Feed的文件大小约为8GB,我计划在不久的将来加入更多二手车资源。
当前的JSON数据包含显示从汽车搜索到汽车购买的汽车信息所需的一切,但是,JSON数据库存储在本地,我使用PHP的file_get_contents()
来获取每个列表的相应元数据。返回200辆汽车大约需要8到12秒,这也不错,但我知道还有改进的余地。
将我的数据从本地化的JSON文件迁移到MariaDB 10.1是最佳实践吗?这是未来的可扩展替代方案吗? 我的堆栈应该如何提高速度并提高搜索能力?
注意:
目前正在使用
答案 0 :(得分:2)
将我的数据从本地化的JSON文件迁移到MariaDB 10.1是一个 最佳实践动作?这是未来的可扩展替代方案吗? 我的堆栈应该是什么样的,以提高速度和改善搜索 能力?
是。数据库的整个目的是使数据的存储和使用从长远来看更容易。
每次在PHP中加载JSON文件时,PHP都必须解析数据,我非常怀疑包含8GB数据的200,000个列表将作为从文件系统加载到PHP内存中的文件运行良好。当您尝试加载文件时,PHP很可能会死(也就是说:抛出一个错误)。在低级别状态下对PHP中的数据进行排序和操作效率更低。
将JSON数据存储在某种类型的数据库中--MariaDB,MySQL,MongoDB等...... - 是处理这类事情的唯一实用和最佳实践方法。
任何人都会反复将本地JSON文件加载到PHP中的主要原因是用于小测试和开发思路。在实际层面上,它是低效的,但是当你处于开发的早期阶段并且不想创建一个将大型JSON文件导入到实际数据库中的过程时,一个小的数据样本文件可以从你的开发人员的观点来理解基本的概念和想法。
但完全没有“最佳实践”可以说明从文件系统读取文件是“最佳实践”;老实说,这是一个非常糟糕的主意。
答案 1 :(得分:-1)
您将需要Apache Solr,这将改善搜索和处理文本数据。
默认情况下,您可以使用file_get_contents
来处理其查询及其查询结果的优点是JSON格式。