繁体   English   中英

Flask SQLAlchemy 初始数据库连接速度极慢

[英]Flask SQLAlchemy initial database connection extremely slow

当我与 FlaskSQLAlchemy 建立初始数据库连接时,它非常慢,有时需要一分钟或更长时间才能成功连接并执行查询。 初始连接后的任何后续数据库调用都很快。 据我了解,这与“延迟加载”有关。 我怎样才能“强制”这个初始连接更早发生,或者完全加速连接?

我的数据库使用 MS SQL Server,数据库 API 使用 pyodbc。 该应用程序部署在 Windows IIS 服务器上,尽管即使在本地连接时也会出现此问题 - 部署在 IIS 上时会加剧。

使用最新版本的 PYODBC 驱动程序。 首先安装python包。

pip install pyodbc

如果您使用以下代码,那么您肯定会从 MSSQL 数据库获得快速响应。

import urllib
params = urllib.parse.quote_plus(
    'DRIVER={ODBC Driver 17 for SQL Server};SERVER=server-name;DATABASE=database-name;UID=sa;PWD=****;Trusted_Connection=yes;'
)

class Config:
    DEBUG = True
    SECRET_KEY = "E9738F40-4210ACAD94B"
    SQLALCHEMY_DATABASE_URI = "mssql+pyodbc:///?odbc_connect=%s" % params

确保系统中的 ODBC 驱动程序准确无误。 如果您想了解有关 ODBC 驱动程序的知识,请在 cmd 命令中运行以下查询。

import pyodbc
pyodbc.drivers()

然后将以下代码放入您的init .py 文件中

def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

以上内容将提供您的 ORM(对象关系映射器),它将为您提供一种将对象参数映射到底层 RDBMS 表结构的技术。 ORM API 提供了无需编写原始 SQL 语句即可执行 CRUD 操作的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM