Python SQLAlchemy多个查询

时间:2015-09-03 17:27:59

标签: python sqlalchemy

我不确定解决此问题的最佳方法。说我有一个"小部件"表格中有字段' id,' name',' size',' color',10,000行。

当我加载网页时,我经常需要查找数百个小部件(按ID)并返回一个或多个相关字段。

建立数据库会话后,最佳做法是:

thiswidget = session.query(Widget).filter(Widget.id=X)

每次我需要一段数据,或者我应该先预先获取所有数据,如下所示:

widgetsdict = {}
for widget in session.query(Widget):
    widgets[widget.id] = (widget.name, widget.size, widget.color)

然后,每当我需要查看某些内容时,请执行以下操作:

thiswidget = widgetsdict[X]

第一种方法要简单得多,但是一遍又一遍地询问数据库是个好主意吗?

1 个答案:

答案 0 :(得分:1)

您应该使用缓存来防止多次访问数据库。

Redis或memcached通常用于此目的。它们都充当在客户端计算机上运行的进程,可以调用它来保存和检索数据。您需要设置本地服务器和相关的python库。

你在python中编写的代码应该执行以下操作:

  • 检查缓存中的密钥
  • 如果public async Task ProcessBatchAsync() { CreateConnection(); List<string> items = new List<string>(); var tasks = items.Select(item => ProcessItemAsync(item)); await Task.WhenAll(tasks); } private async Task ProcessItemAsync(string item) { var result = await DownloadItemAsync(item); //do more processing } 返回,请查询db
  • 将结果存储在缓存中,设置合理的到期时间

缓存软件

redis

memcached