Erlang 对于RAM、查询列表理解或mnesia索引读取,哪一个更昂贵?

Erlang 对于RAM、查询列表理解或mnesia索引读取,哪一个更昂贵?,erlang,Erlang,我试图从一个零碎的mnesia表中读取数据,该表可能在不久的将来保存大量记录。这些读取也可以由表主键以外的其他键执行 两个选项中哪一个更有效?查询列表理解或mnesia索引读取?嗯,索引将需要更多的磁盘空间。对于每个表片段,mnesia将创建一个单独的索引文件。然而,根据经验,索引读取效率更高 QLC在运行时会消耗更多的内存,尤其是当查询结果太多时。这将要求您使用查询游标。我建议你使用索引读取。索引读取对于RAM来说并不昂贵,因为它是一种正常的读取,尽管mnesia必须首先查阅索引文件。当涉及到

我试图从一个零碎的mnesia表中读取数据,该表可能在不久的将来保存大量记录。这些读取也可以由表主键以外的其他键执行


两个选项中哪一个更有效?查询列表理解或mnesia索引读取?

嗯,索引将需要更多的磁盘空间。对于每个表片段,mnesia将创建一个单独的索引文件。然而,根据经验,索引读取效率更高

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

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