TXT文件中的产品分析数据(使用YAML)

时间:2011-02-03 15:41:01

标签: php mysql database text-database

我目前正在为一家大公司开发一个使用PHP / MySQL的电子商务软件。我有两种方法可以获得一些特定的数据:

  • DB(用于获取大量数据,例如产品,类别,订单等)
  • TXT(使用YAML - 获取分析数据和一些选项)

例如,当用户转到产品详细信息页面时,我需要获取这些TXT文件:

  • 产品摘要文件(product_hit,quantity_sold等)-approximately max。 90KB
  • Langauge和设置文件(例如company_name,模板的翻译)-approximately max。 300KB
  • 可能是另一个文件(我不知道对不起) - 假设100KB。

我想以这种方式使用,因为人类可以轻松读取数据,并且可以在编程语言之间移植。另外,如果我使用DB,我需要连接几个表。但是这些文件一起得到了它们。

我的txt文件看起来像(YAML):

 product_id: 1281
 quantity_sold: 12 #item(s)
 hit: 1105
 hit_avarage: 92 #quantity_sold/hit
 vote: 2
 ...

但是,我仍然不确定速度和性能。使用TXT文件是个好主意?我真的应该用这种方式而不是DB吗?

4 个答案:

答案 0 :(得分:2)

由于您无法部分包含和解析YAML文件,因此您必须整体解析该文件,这意味着您将获得令人难以置信的性能影响。您可以将其与从数据库中选择所有行进行比较,然后循环遍历它们以找到您要查找的行,而不是仅键入WHERE条件。所以,是的,数据库可以更快地完成你的要求。

请查看基于文档的数据库,但您不一定 使用关系数据库。事实上,在查看YAML文件的示例时,我认为使用“no SQL”数据库将是更好的选择。

干杯。

答案 1 :(得分:1)

喜欢 YAML并认为它适用于少量数据,但您提到的维度更适合使用数据库。它更快,数据可以编入索引 - 在基于文件的场景中,你必须遍历整个文件才能找到一些东西。

答案 2 :(得分:1)

使用YAML方法。数据结构表明它们等同于固定数据/配置设置。如果您无法合理地在数据库中进行计算,那么请不要尝试。

然而,您可以将固定数据从YAML转换为CSV,并将其在数据库中导入临时表。当且仅当计算所有内容时才有可行。

对性能无能为力。技术上读取文件数据与使数据库读取磁盘扇区一样慢,并且YAML解析和列拆分之间的差异可能不大。你必须测试它。

答案 3 :(得分:1)

YAML是'人类可读的数据序列化格式'。

序列化是将内存结构转换为可以写入,可能传输和读入内存结构的格式的过程。

数据库管理系统是帮助控制从创建到处理的数据管理的程序,包括

  • 安全
  • 可伸缩性
  • 并发
  • 数据完整性(原子性,一致性,隔离性和持久性)
  • 性能
  • 可用性

YAML 提供处理上述内容的工具和集成环境,如果您想将其用作主要数据存储,则需要隔离所有上述挑战远离这种特殊情况,即使用YAML作为主要数据管理系统(或在某种程度上,迟早重新发明轮子)。

我认为没有“大公司的电子商务系统”会牺牲上面列出的任何人类可读性特征。