【问题标题】:what is the best way for doing same sql query in every html pages在每个 html 页面中执行相同 sql 查询的最佳方法是什么
【发布时间】:2014-01-16 08:37:10
【问题描述】:

views.py 文件中有 10 个 html 页面和 10 个函数。我在每个函数中都有相同的查询(和相同的结果)。那么,不在每个页面中执行相同 sql 查询的最佳优化方法是什么?

【问题讨论】:

    标签: python django query-optimization


    【解决方案1】:

    有点不清楚您是说您不想多次访问数据库,还是不想多次写出实际代码(这是“pythonic”的主要部分)。

    如果是后者,请查看class based views。这些是非常强大的工具,可以让您编写更少的样板代码并使您的应用程序更易于维护。例如,您可以编写一个包含查询的基类,并且所有其他视图都可以从该基类继承并添加自己的模板/无论您在视图之间更改什么。

    如果是前者,并且您担心数据库命中,那么我会质疑 A) 查询真的那么昂贵以至于需要优化吗? B)如果它那么贵,你确定有充分的理由需要在 10 个不同的视图中重复它吗?

    如果对这两个问题的回答都是肯定的,那么您将需要使用 memcached 和 django 的缓存框架之类的东西来研究缓存。

    以后请在您的问题中提供更多信息。您对为什么需要做您正在尝试做的事情的观点/解释示例不仅可以帮助人们回答您的问题,还可以为您指明更好地解决问题的方向。

    【讨论】:

    • 我考虑到“不要重复自己”。我说的是我的个人资料部分。我希望个人资料信息存在于每个页面中。例如推特。您的关注、推文、关注与存在于每个 html 页面中。 (对不起,我的英语不好)所以我想它们对我来说都很重要。
    • 这里的简短回答是“不要过早优化”。从数据库中提取配置文件信息是一个非常小的事务,您将看到缓存和非缓存之间几乎没有区别。即使对于更昂贵的查询,memcached 也足以处理它。
    猜你喜欢
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-08-05
    • 2014-10-19
    • 2014-04-20
    相关资源
    最近更新 更多