Python 同步&异步MySQL

同步&异步MySQL

#   MySQL是许多网站都需要使用到的数据库软件,用 Python操作 MysQL数据库大部分驱动都是同步的,也就是必须等待他的返回才会往下执行,如果一个 sQL执行得比较久,
#   那么会直接卡死这个线程。因此这里我们需要选择异步的Python驱动来操作 MysQL 数据库。I
import asyncio
import aiomysql
import shortuuid
import pymysql

#   异步
#   aiomysql做数据库连接的时候,需要这个loop对象
async def async_basic(loop):
    pool = await aiomysql.create_pool(
        host="127.0.0.1",
        port=3306,
        user="root",
        password="root",
        db="dvwa",
        loop=loop
    )
    async with pool.acquire() as conn:
        async with conn.cursor() as cursor:
            for x in range(10000):
                content = shortuuid.uuid()
                sql = f"insert into guestbook(comment_id,comment,name) values(2,'asd','{content})"
            #执行SQL语句
                await cursor.execute(sql)
            await conn.commit()
    #关闭连接池
    pool.close()
    await pool.wait_closed()


#同步
def sync_basic():
    conn = pymysql.connect(
        host="127.0.0.1",
        port=3306,
        user="root",
        password="root",
        db="dvwa",
        loop=loop
    )
    with conn.cursor() as cursor:
        for x in range(10000):
            content = shortuuid.uuid()
            sql = f"insert into guestbook(comment_id,comment,name) values(2,'asd','{content})"
            # 执行SQL语句
            cursor.execute(sql)
        conn.commit()



if __name__ == '__main__':
    #   异步:数量大时用异步
    loop = asyncio.get_event_loop()
    loop.run_until_complete(async_basic(loop))
    #  同步:sync_basic()

参考:https://study.163.com/ 知了传课

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

carefree798

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

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

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

打赏作者

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

抵扣说明:

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

余额充值