This repository was archived by the owner on Aug 19, 2025. It is now read-only.
Repository navigation
This repository was archived by the owner on Aug 19, 2025. It is now read-only.
MySQL Connection Pool Doesn't Seem to Work #564
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Activity
yeah, it's an issue with databases library
test the working code:
import aiomysql import asyncio async def create_pool(): pool = await aiomysql.create_pool( host='192.168.62.195', port=3306, user='root', password='xiao', db='db_sms', minsize=3, maxsize=10 ) return pool async def execute_query(pool, query): while True: async with pool.acquire() as conn: async with conn.cursor() as cur: await cur.execute(query) result = await cur.fetchall() # return result print(result) async def run_concurrent_queries(pool, num_queries): tasks = [] query = "select * from tbl_sms_record" async with asyncio.TaskGroup() as tg: for tid in range(num_queries): # tg.create_task(exec_sql(database.fetch_all, 'show tables', tid)) tg.create_task(execute_query(pool, query)) async def main(): pool = await create_pool() num_queries = 100000 await run_concurrent_queries(pool, num_queries) pool.close() await pool.wait_closed() asyncio.run(main())
TCP Connections:
ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53520 users:(("mysqld",pid=542638,fd=37)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53560 users:(("mysqld",pid=542638,fd=42)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53574 users:(("mysqld",pid=542638,fd=45)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53530 users:(("mysqld",pid=542638,fd=38)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53564 users:(("mysqld",pid=542638,fd=44)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53548 users:(("mysqld",pid=542638,fd=41)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53510 users:(("mysqld",pid=542638,fd=23)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53538 users:(("mysqld",pid=542638,fd=39)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53562 users:(("mysqld",pid=542638,fd=43)) ESTAB 0 1400 [::ffff:10.0.0.161]:3306 [::ffff:192.168.50.139]:53590 users:(("mysqld",pid=542638,fd=46))and qps to 1k
databases just qps 600Thanks for the report! Let me know if you determine the cause — there's not a lot of activity from people that would know the reason off the top of their head.
@Vastxiao which library works for making async database connection which supports connection pooling, raw SQL execution ?
@Vastxiao which library works for making async database connection which supports connection pooling, raw SQL execution ?
aiomysql comes with asynchronous connection pooling, native sql support
Reacted by 渺萧@zanieb I don't know the reason for databases, but I created asmysql as a replacement.
https://github.com/vastxiao/asmysql
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
I am experiencing an issue with the MySQL connection pool. I have been testing the following code:
During concurrency testing, I noticed that only one TCP connection is being utilized for executing queries, while the other two initial connections remain idle.
MySQL process list output:
TCP Connections:
I expected that with 100,000 concurrent tasks, more connections would be utilized. Is this an issue with my code or the databases library?