首页 > 解决方案 > 有没有办法让这个 API 调用更快?

问题描述

有一个简单的文本字段,当用户键入时,将进行一个 api 调用,该调用将根据用户类型获取人员姓名。例如,当用户按下按钮“A”时,将立即发出 API 请求,并且将从数据库中提取所有以“A”开头的名称。当前的问题是,由于我们有大约 100 万个条目,每个请求大约需要 8-10 秒。有没有办法让它更快?

这是我正在制作的 axios 发布请求。

  fetchingDataOnChange = () => {
    let nameValue = this.state.searchName;
    var myParams = {
        nameValue: nameValue
    }
    axios.post('/get-hcp-data', myParams) 
        .then((res) => {
            const hcps = res.data;
            this.setState({ hcps: hcps, hcpName: Object.values(hcps.hcp_details_concat) })
            console.log(res);
        }, (error) => {
            console.log(error);
        });
}

这是烧瓶中的功能:

 @app.route('/get-hcp-data', methods=['GET', 'POST'])
 def get_hcp_data():
    value = request.get_json()
    newValue = value['nameValue']
    engine = connect_pg()
    sql = "select * from dim_hcp_details where lower(hcp_name) like lower('"+newValue+"%') limit 50"
    hcp_details = pd.read_sql_query(sql,engine)
    hcp_details['hcp_details_concat'] = "[" + hcp_details['hcp_id'] + "]" + hcp_details['hcp_name']
    hcp_dict = hcp_details.to_dict()
    return jsonify(hcp_dict)

在此处输入图像描述

标签: pythonreactjsflaskaxios

解决方案


推荐阅读