Django类常量与数据库查找Performan

2024-05-06 15:35:56 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑到我有一个Django模型:

Class Shape(models.Model):
    SHAPE_MAPPING = {
        'square': {'is_symmetrical': True},
        'rectangle': {'is_symmetrical': False}
    }
    is_symmetrical = models.BooleanField(default=False)
    # other fields go here

如果一个形状是对称的,什么是更合适的查询方法?
我在shell中运行了一个测试查找,结果如下:

ShapeType.objects.get(name='square').is_symmetrical = 0.0212440490723 seconds 
ShapeType.SHAPE_MAPPING['square']['is_symmetrical'] = 2.86102294922e-06 seconds

忽略它是一个形状等的概念设置,并假设这些是不受更改的物理属性。我在问:在模型类级别创建一个非rel常量结构是否合适(以及何时),以便更快地查找。


Tags: django模型falsemodelismodelsmappingclass
1条回答
网友
1楼 · 发布于 2024-05-06 15:35:56

你有时间证明,如果可能的话,使用常数会更快。常数的计时不会随时间而变差,但如果在数据库中进行查找,则会随着表的增长而变得越来越差。索引在这里没有帮助,因为这是一个布尔字段,不能有效地索引。你知道吗

如果您决定改用缓存,性能仍然会比使用常量慢。虽然缓存性能不会随着网络调用开销的增长而恶化,但请确保它比常量查找慢。你知道吗

相关问题 更多 >