【问题标题】:Which is more expensive to the RAM, A query list comprehension, or a mnesia index_read?RAM、查询列表理解或 mnesia index_read 哪个更昂贵?
【发布时间】:2011-07-18 19:35:06
【问题描述】:

我正在尝试从一个碎片化的 mnesia 表中读取数据,该表在不久的将来可能会保存大量记录。这些读取也可能通过表的主键以外的其他键进行。

这两个选项哪个更有效?一个查询列表理解,还是一个记忆索引读取?

【问题讨论】:

    标签: erlang


    【解决方案1】:

    好吧,索引将需要更多磁盘空间。对于每个表片段,mnesia 将创建一个单独的索引文件。但是,从经验来看,索引读取更有效。

    QLC 在运行时会消耗更多内存,尤其是在查询结果很多时。这将要求您使用查询游标。我建议您使用索引读取。索引读取对 RAM 来说根本不昂贵,因为它的正常读取虽然 mnesia 必须先查阅索引文件。在批量处理复杂的表关系和返回值评估时,QLC 非常有用。但是,当结果太多时,它会引入处理成本和内存。请注意,QLC 使用 mnesia:select/1,2 和 4(具体是哪个,我不确定),但我知道 select 是一种使 mnesia 遍历 serach 中的整个表以获取记录的操作。

    Mnesia 索引读取优于查询列表理解

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 2010-10-12
      • 2017-12-23
      • 1970-01-01
      • 1970-01-01
      • 2015-06-11
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多