TXT文件中的产品分析数据(使用YAML)
-
28-10-2019 - |
题
我目前正在为一家大公司开发使用PHP / MySQL的电子商务软件。我可以通过以下两种方法获取特定数据:
- 数据库(用于获取海量数据,例如产品,类别,订单等)
- TXT(使用YAML-用于获取分析数据和某些选项)
例如,当用户转到产品详细信息页面时,我需要获取这些TXT文件:
- 产品摘要文件(product_hit,quantity_sold等)-最高90KB
- 语言和设置文件(例如company_name,模板的翻译)-最高300KB
- 可能还有一个文件(我不知道是不是)-假设有100KB。
我想用这种方式,因为数据很容易被人类读取,并且可以在编程语言之间进行移植。此外,如果使用数据库,则需要连接几个表。但是这些文件会在一起。
我的txt文件看起来像(YAML): 通用标签
但是,我仍然不确定速度和性能。使用TXT文件是个好主意吗?我真的应该用这种方式代替DB吗?
解决方案
由于不能部分包含和解析YAML文件,因此必须将文件整体解析,这意味着您将获得令人难以置信的性能提升。您可以将其与从数据库中选择所有行进行比较,然后遍历它们以查找所需的行,而不仅仅是键入WHERE条件。因此,是的,数据库可以更快地完成您的要求。
尽管请一定要看一看基于文档的数据库,但不一定要使用关系数据库。实际上,在查看YAML文件的示例时,我认为使用的是“ 没有SQL ”数据库将是更好的选择。
干杯。
其他提示
我喜欢 YAML,并认为它对于少量数据非常有用,但是您提到的维度最好使用数据库来处理。它速度更快,并且可以为数据建立索引-在基于文件的方案中,您将不得不遍历整个文件才能找到内容。
使用YAML方法。数据结构表明它们等同于固定数据/配置设置。而且,如果您不能合理地在数据库中进行计算,请不要尝试。
不过,您可以将固定数据从YAML转换为CSV,然后将其导入数据库中的临时表中。当且仅当计算一切都可行时。
不能说任何有关性能的信息。从技术上讲,读取文件数据的速度与数据库读取磁盘扇区的速度一样慢,并且YAML解析和列拆分之间的差异可能并不重要。您必须对此进行测试。
YAML是“人类可读的数据序列化格式”。
串行化是将内存结构转换为可以写入,传输和读取到内存结构的格式的过程。
数据库管理系统是可帮助控制从创建到处理的数据管理的程序,其中包括
- 安全性
- 可扩展性
- 并发
- 数据完整性(原子性,一致性,隔离性和持久性)
- 性能
- 可用性
YAML不会不提供解决上述问题的工具和集成环境,如果您要将其用作主要数据存储,则需要隔离所有全部上述挑战摆脱了将YAML用作主要数据管理系统的特定场景(或早晚在某种程度上重新发明了轮子)。
我想,没有哪个“大公司电子商务系统”愿意为了人类可读性而牺牲上面列出的任何功能。