Python sqlalchemy下面的查询效率如何优化,pythonsqlalchemy,很简单的一个需求,就是一


很简单的一个需求,就是一个搜索的接口。根据接收到的参数进行查询。
比如:对商品表进行搜索,某个时间段某个商品的品牌。

query_sql = ModelA.query    if request.args.has_key("end_date_time") and request.args.has_key("begin_date_time"):        query_sql = query_sql.filter(and_(ModelA.DateOfproduction >= request.args["begin_date_time"], ModelA.DateOfproduction < request.args["end_date_time"]))    if request.args.has_key("name"):        query_sql = query_sql.filter(ModelA.name== request.args["name"])    if request.args.has_key("arg01"):        query_sql = query_sql.filter(ModelA.arg01.like("%" + request.args["arg01"] + "%"))    data = query_sql.all()    count = len(data)    if request.args.has_key("page"):        page_size = int(request.args["page_size"]) if request.args["page_size"] else 128        page_number = int(request.args["page"])        start_index = (page_number - 1) * page_size        end_index = min(page_number * page_size, count)        data = query_sql.order_by(ModelA.id)[start_index : end_index]    else:        data = query_sql.all()    return jsonify({"data": [x.export_data() for x in data], "count": count})

1:个人觉得为了得到count多查询一便影响到了性能,这个还有其他办法获得count的值?
2:是否可以对查询条件和对应的结果做缓存?

编橙之家文章,

评论关闭