什么能为大型数据集提供更好的性能?嵌套字典还是对象字典?
What offers better performance for large datasets? Nested dictionaries or a dictionary of objects?
当我从多个数据库表中获取数据时,我发现自己在重复这种模式:
records = {'p_key': { "record": r, "A": list(), "B": list(), "C" : list() } for r in db_records}
我经常不得不以这种方式对数据进行分组,因为我无法跨数据库进行联接,或者可能存在多个查询比多个联接更快的情况。
但在性能方面,我不确定像这样嵌套字典是否有很多开销,以及是否可以通过创建一个具有这些属性的对象成为记录字典中的值来更好地为我服务。我所说的性能是指 space 的总体成本和使用大量嵌套字典与对象字典的时间。
字典和常规 class 对象在性能上基本上没有区别,因为对象内部使用字典来处理它们的属性。
但是,您应该考虑将 classes 与 __slots__
一起使用。
Here 详细解释了它是什么以及它的性能。
另一种选择是使用 pandas 库来处理大数据集。
当我从多个数据库表中获取数据时,我发现自己在重复这种模式:
records = {'p_key': { "record": r, "A": list(), "B": list(), "C" : list() } for r in db_records}
我经常不得不以这种方式对数据进行分组,因为我无法跨数据库进行联接,或者可能存在多个查询比多个联接更快的情况。
但在性能方面,我不确定像这样嵌套字典是否有很多开销,以及是否可以通过创建一个具有这些属性的对象成为记录字典中的值来更好地为我服务。我所说的性能是指 space 的总体成本和使用大量嵌套字典与对象字典的时间。
字典和常规 class 对象在性能上基本上没有区别,因为对象内部使用字典来处理它们的属性。
但是,您应该考虑将 classes 与 __slots__
一起使用。
Here 详细解释了它是什么以及它的性能。
另一种选择是使用 pandas 库来处理大数据集。