Alasql 最佳实践

Alasql Best Practices

我是 alasql 的新手(这太棒了)。虽然该文档向您展示了如何操作,但它并未提供有关最佳实践的大量信息。

迄今为止,我只是运行查询了一组数组(js 对象)。我还没有创建数据库对象或 table 个对象。

使用数据库和 table 对象优于数组数组是否有性能(速度、内存、其他)优势?

这是一个真实世界的例子。我有 2 组数据正在加载:员工(10 列)和员工销售额(5 列),它们连接在 EmployeeID 列上。 Employees 将相对较小(例如,100 行),而 Employee Sales 将有 10,000 条记录。我目前的方法是简单地 运行 一个查询,我将这 2 组数据连接在一起并最终得到一个大结果集:10,000 行数据,每行 14 列(重复 Employee 数据集中的每一列) ,然后我使用动态过滤器、交互性等提取数据。

这个大数据集一直存储在内存中,但这样做的好处是我不需要一遍又一遍地重新运行那个查询。或者,我可以简单地 运行 每次需要时对 2 个数据集进行连接,然后将其从内存中删除。

此外,如果我将多个 table 连接在一起,我可以在连接列上创建索引以提高性能吗?我在创建索引的示例中看到,但文档中没有其他内容。 (此页面上没有任何内容:https://github.com/agershun/alasql/wiki/Sql)。索引对内存的影响是什么?插入对性能有何影响?

支持主键,但没有文档。这会创建索引吗?

Are there performance (speed, memory, other) benefits of using database and table objects over an array of arrays?

如果您在表上放置索引,那么 - 是的 - 您可以获得性能优势。多少取决于你的数据。

if I am joining together multiple tables, can I create indexes on the join columns to speed up performance?

是的。以及您放入 "where" 条件的所有其他列。