一种PythonORM框架性能测试分析方法研究

一种PythonORM框架性能测试分析方法研究贺宗平贺曦冉秦新国摘要:在使用Python进行系统应用开发的过程中,对各类型的关系型数据库,如MySQL、Oracle、SQLServer等的增、删、改、查操作,需要基于ORM框架规范的概念和模型。因此从安全性、可扩展性等角度分析测试Python社区生态中的多種ORM框架,以及适用于不同的应用场景和条件,并提出对ORM框架性能进行横向对比测试分析的方法和实例,具有较高的实用价值。关键词:Python;ORM;数据库;性能测试中图分类号:TP392文献标识码:A文章编号:2096-4706(2021)06-0083-04ResearchonaTestandAnalysisMethodofPythonORMFrameworkPerformanceHEZongping,HEXiran,QINXinguo(InformationOffice,NanjingAuditUniversity,Nanjing211815,China)Abstract:IntheprocessofcarryingoutsystemapplicationdevelopmentusingPython,theURUDoperationsonvarioustypesofrelationaldatabase,suchasMySQL,Oracle,SQLServerandsoon,needstobaseontheconceptandmodelofORMframeworkspecification.Therefore,itisofgreatpracticalvaluetoanalyzeandtestmanyORMframeworksinPythoncommunityecologyfromtheanglesofsecurityandscalability,aswellasapplyingtodifferentapplicationscenariosandconditions,andputforwardmethodsandexamplesofhorizontalcomparativetestandanalysisofORMframeworkperformance.Keywords:Python;ORM;database;performancetesting0引言在利用Python进行Web应用系统进行如网络数据可视化分析、知识图谱应用相关的开发过程中,其中涉及大量对各类型数据库的访问操作,如MySQL、Oracle、SQLServer等,主要是“增、删、改、查”(CRUD)。在应用程序开发中,从访问性能、安全性和可扩展性等方面考虑,对数据库相关访问操作往往是通过ORM框架来实现。Python社区生态中有多种ORM框架,适用于不同的应用场景和条件,因此对ORM框架性能进行横向基准测试分析,在不同的场景需求下选择适合的ORM框架,对于提升应用系统性能具有重要的价值意义。1ORM概述1.1基本概念在没有ORM框架条件下,如果系统程序需要操作数据库,需要在开发中编写原生SQL语句,并通过数据驱动接口模块远程操作数据库,如图1所示。这个数据库操作过程可以概括为以下几个步骤:(1)建立数据库连接,获得连接对象。(2)根据用户的操作定义组装SQL执行语句。(3)用连接对象执行SQL语句,获得结果集数据对象。(4)最后释放连接资源,关闭连接对象。这种操作流程逻辑复杂、重复度高,并存在注入攻击等安全风险问题,系统的设计也无法做到业务与数据逻辑分离,不利于降低系统模块间的紧耦合关系。在系统开发中编写原生SQL语句会存在数据库适配迁移问题,例如针对Oracle开发的SQL语句无法平移应用到其他数据库上,一旦需要迁移改变数据库类型,会在源代码层级带来巨大的变更成本。1.2ORM作用为解决Python系统开发数据库操作的问题,实践中引入了ORM框架的概念。ORM(ObjectRelationalMapping)即对象关系映射,通过对各种类型数据库驱动连接库进行封装,避免对数据库直接编写SQL的操作,如图2所示。主要作用表现在以下几个方面:(1)统一访问接口。通用数据库交互接口是ORM设计表现核心,使得能够以统一的方式与各种不同类型的数据库进行访问交互,避免了各种不同数据库SQL语法不同的问题。(2)简化访问方式。ORM封装提供了完整的数据库操作细节流程,不再需要开发人员构造烦琐的数据库访问流程。(3)实现分层模式。ORM解决了面向对象设计与关系型数据库的匹配问题,建立了对象与关系之间的映射框架,是MVC分层模式中的内存对象持久化存储具体实现方式。(4)提高安全特性。由于ORM框架无须用户自定义拼接SQL语法等操作,从而阻断了外部的注入攻击等威胁,提升代码的安全性。1.3ORM模型ORM框架中的类对应简称为模型,模型是数据的结构性定义,包含存储数据的字段类型和方法。每个模型都对应映射到某个数据表,模型中的属性对应数据表的字段。以DjangoORM为例进行CRUD操作示例:(1)在ORM框架中操作数据,必须先创建模型对应数据库表。创建示例模型:classEm...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?