php orm 性能,Lumen框架使用orm操作数据与pdo操作数据性能测试

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 17:07   2230   0

Lumen使用orm操作数据与pdo操作数据性能测试

一、测试环境:

win10下搭建的docker环境、包括:nginx、php、mysql

二、测试使用工具:

使用的是Apache服务提供的ab测试命令

三、重点说明:

测试在lumen框架中使用的代码都是最精简的查询数据代码,分为orm和pdo操作数据,

由于刚开始测试时使用ab命令请求和并发都是从100开始,看不出什么时间上的变化。最

后经过多次测试,发现在没有Failed

requests为失败请求的情况下确定了我所使用的docker

环境承受的最大请求数为200和最大并发为200,下面的例子就以请求200次和并发为200

做了性能测试,结果如下:

1、使用orm操作数据库

从数据库test表查询数据,请求次数为200,并发为200测试代码如下:

public

function ormSelectTest()

{

$result = Test::where(['name' => 'name77872481', 'age' => 31])->get(['name', 'age']);

print_r($result);

die;

}

使用测试命令:

ab -n 200 -c 200 -w i.imapi.com/api/ab/ormSelectTest

>>d:\orm_and_pdo_select200.html

一共测试了10次,得到了如下结果:

第一次测试结果:

总测试时间(Time

taken for tests)为:59.747

seconds

每秒的请求数(Requests per second):3.52

第二次测试结果:

总测试时间(Time

taken for tests)为:59.693

seconds

每秒的请求数(Requests per second):3.35

第三次测试结果:

总测试时间(Time

taken for tests)为:59.386

seconds

每秒的请求数(Requests per second):3.37

第四次测试结果:

总测试时间(Time

taken for tests)为:60.499

seconds

每秒的请求数(Requests per second):3.31

第五次测试结果:

总测试时间(Time

taken for tests)为:60.279

seconds

每秒的请求数(Requests per second):3.32

第六次测试结果:

总测试时间(Time

taken for tests)为:57.430

seconds

每秒的请求数(Requests per second):3.48

第七次测试结果:

总测试时间(Time

taken for tests)为:58.390

seconds

每秒的请求数(Requests per second):3.43

第八次测试结果:

总测试时间(Time

taken for tests)为:59.857

seconds

每秒的请求数(Requests per second):3.34

第九次测试结果:

总测试时间(Time

taken for tests)为:60.297

seconds

每秒的请求数(Requests per second):3.32

第十次测试结果:

总测试时间(Time

taken for tests)为:59.262

seconds

每秒的请求数(Requests per second):3.37

2、使用pdo操作数据库

从数据库pdo_test表查询数据,请求次数为200,并发为200测试代码如下:

public functionpdoSelectTest()

{$sql="select name,age from pdo_test where name=:name and age=:age";$pdo= DB::connection()->getPdo();$result=$pdo->prepare($sql);$result->execute([':name'=>'abc28234613',':age'=>31]);while($row=$result->fetch(\PDO::FETCH_ASSOC)) {

print_r($row);

}

}

使用测试命令:

ab -n 200 -c 200 -w i.imapi.com/api/ab/pdoSelectTest

>>d:\orm_and_pdo_select200.html

一共测试了10次,得到了如下结果:

第一次测试结果:

总测试时间(Time

taken for tests)为:57.020

seconds

每秒的请求数(Requests per second):3.39

第二次测试结果:

总测试时间(Time

taken for tests)为:55.820

seconds

每秒的请求数(Requests per second):3.58

第三次测试结果:

总测试时间(Time

taken for tests)为:60.716

seconds

每秒的请求数(Requests per second):3.29

第四次测试结果:

总测试时间(Time

taken for tests)为:58.624

seconds

每秒的请求数(Requests per second):3.41

第五次测试结果:

总测试时间(Time

taken for tests)为:54.898

seconds

每秒的请求数(Requests per second):3.64

第六次测试结果:

总测试时间(Time

taken for tests)为:56.000

seconds

每秒的请求数(Requests per second):3.57

第七次测试结果:

总测试时间(Time

taken for tests)为:57.253

seconds

每秒的请求数(Requests per second):3.49

第八次测试结果:

总测试时间(Time

taken for tests)为:57.707

seconds

每秒的请求数(Requests per second):3.47

第九次测试结果:

总测试时间(Time

taken for tests)为:56.638

seconds

每秒的请求数(Requests per second):3.53

第十次测试结果:

总测试时间(Time

taken for tests)为:57.293

seconds

每秒的请求数(Requests per second):3.49

我将上面得到的数据整理成了表格进行查看:

Orm

比较

Pdo

第一次测试结果

59.747

大于

57.020

第二次测试结果

59.693

大于

55.820

第三次测试结果

59.386

小于

60.716

第四次测试结果

60.499

大于

58.624

第五次测试结果

60.279

大于

54.898

第六次测试结果

57.430

大于

56.000

第七次测试结果

58.390

大于

57.253

第八次测试结果

59.857

大于

57.707

第九次测试结果

60.297

大于

56.638

第十次测试结果

59.262

大于

57.293

通过以上数据可以看出Orm操作数据的性能要比pdo操作数据差。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP