Python 同步&异步MySQL
Posted 再认真点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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/ 知了传课
以上是关于Python 同步&异步MySQL的主要内容,如果未能解决你的问题,请参考以下文章