python小技巧大应用--实测pymysql打开关闭数据库的效率问题

都说打开关闭数据库很消耗资源,影响效率.但到底打开关闭一次数据库会怎样影响效率,影响程度有多大,对我这种轻量级的使用用户是否可以接受这种效率损失,于是就有了下面的测试过程.(在此申明:我的测试是基于我的开发环境所得,是不权威的,甚至是片面的,仅供参考,读者朋友可采用以下代码对自己的开发环境进行实测)

1)首先测试本机mysql数据库开关100次效率如何

import pymysql
from datetime import datetime #必须这样,否则出错
i = 1
btime = datetime.now()
while i <= 100:
    starttime = datetime.now()
    #本机数据库
    connect = pymysql.connect(host='localhost',
                              port=3306,
                              user='pubuser',  # 连接数据库名称
                              password='123321',  # 连接数据库密码
                              db='test-pythondata',  # 数据库名称
                              charset='utf8')
    # ----获取光标
    cursor = connect.cursor()
    cursor.close() #关闭光标
    connect.close() #关闭连接
    endtime = datetime.now()

    print(i,' ',endtime-starttime)
    i += 1
etime = datetime.now()
print('总:',etime-btime,' 平均:',(etime-btime)/100)

运行后输出结果如图:

小结:本机打开关闭100次MySQL数据库
总: 0:00:00.784442  平均: 0:00:00.007844
平均耗时0.0078秒

2) 再测试内网开关mysql数据库100次效率如何

import pymysql
from datetime import datetime #必须这样,否则出错
i = 1
btime = datetime.now()
while i <= 100:
    starttime = datetime.now()
    #内网17数据库
    connect = pymysql.connect(host='192.168.8.17',
                              port=3306,
                              user='pubuser',  # 连接数据库名称
                              password='123321',  # 连接数据库密码
                              db='test-pythondata',  # 数据库名称
                              charset='utf8')
    # ----获取光标
    cursor = connect.cursor()
    cursor.close() #关闭光标
    connect.close() #关闭连接
    endtime = datetime.now()

    print(i,' ',endtime-starttime)
    i += 1
etime = datetime.now()
print('总:',etime-btime,' 平均:',(etime-btime)/100)

运行后输出结果如图:

小结:内网打开关闭100次MySQL数据库
总: 0:00:01.396821  平均: 0:00:00.013968

平均耗时0.014秒

3)本机连续开关1000次效率如何

小结:本机打开关闭1000次MySQL数据库
总: 0:00:13.470841  平均: 0:00:00.013471
平均耗时0.013秒

4)内网连续开关1000次效率如何

小结:内网打开关闭1000次MySQL数据库
总: 0:00:13.243744  平均: 0:00:00.013244
平均耗时0.013秒

总结:(以上数据仅供参考,不具有权威性)小数据量的本地开关数据库只需要0.007秒左右,内网开关数据库只需要0.013秒左右;1000次以上的开关数据库本地与内网效率相近大概0.013秒左右.

最终结论:对于我本人这样的小轻量数据应用来说,这个效率是可以接受的.暂时可以不必考虑一步读写,连接池之类的应用,就写以下纯的pymysql CRUD函数,便于开发应用就可以了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿桂天山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值