Chr*_*son 11 python database google-app-engine list volume
列表,集和词典的Python原生功能完全摇滚.当数据变得非常大时,有没有办法继续使用本机功能?我正在处理的问题涉及非常大的列表的匹配(交集).我还没有突破限制 - 实际上我并不知道限制是什么 - 并且不希望在数据按预期增长之后重新实现大的重复.
是否合理部署在谷歌应用引擎之类的东西上,宣传没有实际的规模限制并继续使用本机功能,而不是真的考虑这个?
是否存在一些Python魔法,可以隐藏列表,集合或字典是否在Python管理的内存中而不是数据库中 - 因此数据的物理部署可以与我在代码中的操作保持不同?
您是如何处理Python超级专家先生或女士,随着数据量的增长处理列表,设置和决策?
我不太清楚你对列表,集和词典的本机功能是什么意思.但是,您可以通过定义具有特殊名称的某些方法来创建模拟容器类型和序列类型的类.这意味着您可以创建一个行为类似于列表的类,但将其数据存储在SQL数据库或GAE数据存储区中.简单来说,这就是ORM的作用.但是,将对象映射到数据库非常复杂,创建自己的ORM可能不是一个好主意,而是使用现有的ORM.
我担心没有一个通用的解决方案.特别是GAE不是某种魔法仙女灰尘,你可以撒上你的代码,使其规模化.要创建可扩展的应用程序,您必须记住几个限制.其中一些是通用的,如计算复杂性,其他一些是特定于您的代码运行的环境.例如,在GAE上,最大响应时间限制为30秒,查询数据存储区的工作方式与其他数据库不同.
在不知道具体问题的情况下很难给出任何具体的建议,但我怀疑GAE是正确的解决方案.
通常,如果您想使用大型数据集,您必须从一开始就记住这一点,否则随着数据集的增长,您将不得不重新编写代码,算法和数据结构.