我不确定解决此问题的最佳方法。说我有一个"小部件"表格中有字段' 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]
第一种方法要简单得多,但是一遍又一遍地询问数据库是个好主意吗?
答案 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 缓存软件