通過FastAPI查詢資料時,查詢速度有時會提高一倍以上。
這是 Dataframe 查詢代碼的一部分。
import dask.dataframe as dd
connection_url = URL.create(
"mssql pyodbc",
username="aabcc",
password="12345",
host="127.0.0.1",
port=2712,
database="test",
query={
"driver": "ODBC Driver 17 for SQL Server",
"Trusted_Connection": "yes",
},
)
def get_data():
df = dd.read_sql_table(table='troya',
uri=connection_url, index_col='no')
df = df.compute()
return df
這是 FastAPI 部分代碼的一部分。
@bp.get("/test/{row}")
def test_get(request: Request, row):
df = get_data()
...
如果您能告訴我為什么會出現此問題,我將不勝感激。
uj5u.com熱心網友回復:
的核心優勢之一dask是能夠在多個作業人員之間分配和協調作業量。當dask用于加載和立即計算時,這種優勢就消失了,因此在上面的代碼片段中,以下兩行有點反模式:
df = dd.read_sql_table(table='troya',
uri=connection_url, index_col='no')
df = df.compute()
發生的情況是作業是分布式的,但隨后必須從作業人員轉移到單個客戶端節點。解決方案取決于您的用例,如果可以以并行/分布式方式繼續作業,那么dask可能仍然很方便,但如果作業流程必須是順序的,那么pandas/sqlalchemy可能是更合適的選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/380847.html
標籤:表现 python-3.6 达斯 快点
上一篇:MySQL索引詳解,面試必問
