在每个 html 页面中执行相同 sql 查询的最佳方法是啥

Posted

技术标签:

【中文标题】在每个 html 页面中执行相同 sql 查询的最佳方法是啥【英文标题】: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 查询的最佳优化方法是什么?

【问题讨论】:

【参考方案1】:

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

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

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

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

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

【讨论】:

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

以上是关于在每个 html 页面中执行相同 sql 查询的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

Statement.executeQuery 为每个 SQL 查询花费相同的时间

SQL查询从数据库中的一个表中获取所有帖子,但来自特定用户的最多5个条目? [复制]

mysql的优化

SQL Server 查询处理中的各个阶段(SQL执行顺序)

用于查找每个给定位置的最多供应商数量的 SQL 查询

MySQL查询缓存