首页 > 数据库 >实战案例二:异步操作MySQL

实战案例二:异步操作MySQL

时间:2024-08-27 21:18:31浏览次数:10  
标签:实战 异步 execute cur await host IO MySQL conn

异步MySQL

pip3 install aiomysql

示例1:

import asyncio
import aiomysql


async def execute():
    # 网络IO操作:连接MySQL
    conn = await aiomysql.connect(host='127.0.0.1', port=3306, user='root', password='123', db='mysql', )

    # 网络IO操作:创建CURSOR
    cur = await conn.cursor()

    # 网络IO操作:执行SQL
    await cur.execute("SELECT Host,User FROM user")

    # 网络IO操作:获取SQL结果
    result = await cur.fetchall()
    print(result)

    # 网络IO操作:关闭链接
    await cur.close()
    conn.close()


asyncio.run(execute())

示例2:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import asyncio
import aiomysql


async def execute(host, password):
    print("开始", host)
    # 网络IO操作:先去连接 47.93.40.197,遇到IO则自动切换任务,去连接47.93.40.198:6379
    conn = await aiomysql.connect(host=host, port=3306, user='root', password=password, db='mysql')

    # 网络IO操作:遇到IO会自动切换任务
    cur = await conn.cursor()

    # 网络IO操作:遇到IO会自动切换任务
    await cur.execute("SELECT Host,User FROM user")

    # 网络IO操作:遇到IO会自动切换任务
    result = await cur.fetchall()
    print(result)

    # 网络IO操作:遇到IO会自动切换任务
    await cur.close()
    conn.close()
    print("结束", host)


task_list = [
    execute('47.93.41.197', "root!2345"),
    execute('47.93.40.197', "root!2345")
]

asyncio.run(asyncio.wait(task_list))

标签:实战,异步,execute,cur,await,host,IO,MySQL,conn
From: https://www.cnblogs.com/Tmars/p/18383557

相关文章

  • 实战案例三:异步操作FastAPI
    FastAPI框架安装pip3installfastapipip3installuvicorn(asgi内部基于uvloop)示例:luffy.py#!/usr/bin/envpython#-*-coding:utf-8-*-importasyncioimportuvicornimportaioredisfromaioredisimportRedisfromfastapiimportFastAPIapp=FastAPI()......
  • 实战案例四:异步实现爬虫
    爬虫pip3installaiohttpimportaiohttpimportasyncioasyncdeffetch(session,url):print("发送请求:",url)asyncwithsession.get(url,verify_ssl=False)asresponse:text=awaitresponse.text()print("得到结果:",......
  • MySQL的四种事务隔离级别
    本文实验的测试环境:Windows10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的......
  • JdbcTemplate教程:JdbcTemplate连接MySQL数据库从入门到进阶
    一、入门了解JDBC概念:JDBC(JavaDataBaseConnectivity):Java数据库连接技术:具体讲就是通过Java连接数据库,并且可以通过发送SQL指令,实现对表中数据执行增、删、改、查等操作的技术。原生JDBC编程(了解一下):        查询t_user表(包括字段:user_id,username,password)中的......
  • mysql基础
    一、启停说明:docker部署dockerps-a|grepmysqldockerstart/stopname二、客户端1、命令行连接mysql-h127.0.0.1-P3306-uroot-p参数说明-h数据库地址-P端口-u用户-p密码-D库名--help帮助2、工具连接如navicat,需要自行破解......
  • 自动化部署Mysql数据库的脚本
    #!/bin/bash#authorhlc#createTime2024-06-17#modifyTime2024-06-18#version1.0#description自动安装Mysqlsource/etc/init.d/functions#定义参数#用于循环count=0#时间date=$(date"+%H:%M:%S:%N")#==========Mysql服务器参数==========#Mysql服......
  • MySQL 2003 - Can’t connect to MySQL server on ' '(10060)
    2003-Can’tconnecttoMySQLserveron''(10060) 一般是以下几个原因造成的:1.网络不通畅2.mysql服务未启动3.防火墙未开放端口4##云服务器的安全组规则未设置  一般是以下几个原因造成的:1.网络不通畅:【mysql-u-p,看看能不能登陆】2.mysql服务未启动:......
  • MYSQL新能优化策略
    一.一般语句优化1.选择合适的数据类型以及字符集:使用合适的数据类型可以减少存储空间和提高查询速度。这个可不能小看,数据量到达一个量级,这个就能看出明显差异。例子:对于布尔值使用TINYINT(1)而不是CHAR(1)比如你有一个字段是表示业务状态或者是类型。CREATETABLEusers......
  • 10W级并发Mysql优化
    批量插入(BatchInsert)批量处理:将多条数据合并成一个INSERT语句,一次性批量插入。这样可以显著减少数据库的交互次数,提高性能。INSERTINTOyour_table(column1,column2,...)VALUES(value1,value2,...),(value3,value4,...)批量大小:通常建议每批次的大小在几百到几......
  • 用Python实现时间序列模型实战——Day1:时间序列的基本概念
    一、学习内容1.时间序列数据的定义与特点定义:时间序列数据是一组按时间顺序排列的观测值。时间序列的每个观测值都与特定时间点相关联。例如,气温每天的记录、股票每日的收盘价等。特点:时间依赖性:时间序列数据的一个基本特点是当前数据点可能依赖于之前的一个或多个数据点......