我试图从一个零散的mnesia表中读取,该表可能在不久的将来拥有大量的记录.这些读取也可以是除表的主键之外的其他键.
这两个选项中哪一个更有效?查询列表理解,还是读取mnesia索引?
那么,索引将需要更多的磁盘空间.对于每个表片段,mnesia将创建一个单独的索引文件.但是,从经验来看,索引读取更有效.
QLC将在运行时消耗更多内存,尤其是当查询结果如此之多时.这将要求您使用Query Cursors.我建议你使用Index read.索引读取对RAM来说并不昂贵,因为通过mnesia进行正常读取必须先查询索引文件.在批处理中执行复杂的表关系和返回值的评估时,QLC很好.但是,当结果太多时,它会引入处理成本和内存.请注意,QLC使用mnesia:select/1,2和4(具体的,我不确定),但我知道select是一个操作,使mnesia在serach中遍历整个表以获取记录.
Mnesia Index读取优于Query List理解