PyMySQLPool
PyMySQLPool is a pymysql-based database connection pool, simple and lightweight.
Table of content
Features
- Maintain a minimum number of connection pools by default.
- If number of unuse connections less than zero, dynamically add connections to pool until current number of inuse connections equal maximum of pool.
- Release the idle connections in regular until number of unuse connections equal minimum of pool.
Requirements
- Python
- CPython : >= 3.4
- MySQL Server -- one of the following:
- MySQL >= 5.5
- MariaDB >= 5.5
- PyMySQL: >= 0.9.2
Installation
Package is uploaded on PyPI
You can install with pip
$ pip install pymysql-pooling
Example
Make use of a simple table (Example in MySQL doc)
mysql> CREATE TABLE pet (name VARCHAR(20), owner VARCHAR(20),
-> species VARCHAR(20), sex CHAR(1), birth DATE, death DATE);
mysql> INSERT INTO pet
-> VALUES ("Puffball", "Diane", "hamster", "f", "1999-03-30", NULL);
from pymysqlpool.pool import Pool
pool = Pool(host=HOST, port=PORT, user=USER, password=PASSWORD, db=DB)
pool.init()
connection = pool.get_conn()
cur = connection.cursor()
cur.execute('SELECT * FROM `pet` WHERE `name`=%s', args=("Puffball", ))
print(cur.fetchone())
pool.release(connection)
This example will print:
('Puffball', 'Diane', 'hamster', 'f', datetime.date(1999, 3, 30), None)
Support auto-commit mode, as following:
pool = Pool(host=HOST, port=PORT, user=USER, password=PASSWORD, db=DB, autocommit=True)
That's all.
Parameters for the pool initial:
host: Host of MySQL serverport: Port of MySQL serveruser: User of MySQL serverpassword: Password of MySQL serverdb: Database of MySQL servercharset: Charset of MySQL servercursorclass: Class of MySQL Cursorautocommit: auto commit modemin_size: Minimum size of connection poolmax_size: Maximum size of connection pooltimeout: Watting time in the multi-thread environmentinterval: Statistical cycle timestati_mun: Statistical frequencymultiple: Regulation standardcounter: Counteraccumulation: Statiscal result
Roadmap
- Connection Pool
- Dynamically Create
- Dynamically Release
- Monitor Web Interface
Resources
License
PyMySQLPool is released under the MIT License. See LICENSE for more information.
Contributing
Thank you for your interest in contribution of PyMySQLPool, your help and contribution is very valuable.
You can submit issue and pull requests, please submit an issue before submitting pull requests.
Release files for pymysql-pooling 0.9.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pymysql-pooling-0.9.9.tar.gz | 5.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pymysql_pooling-0.9.9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.9 kB
Release files / pymysql-pooling-0.9.9.tar.gz
| Download URL | pymysql-pooling-0.9.9.tar.gz |
|---|---|
| Size | 5.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b39ce76d1b27bb391804276f41d2dcd4fcde5f1b3ea189da9e79fe5fca1dc863
|
|
BLAKE2b-256 checksum How to use checksums |
c249d4f4ddf4fb8548014477d34ee6ead28447c2748058356b7f71d7e58fadd5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
|
Release files / pymysql_pooling-0.9.9-py3-none-any.whl
| Download URL | pymysql_pooling-0.9.9-py3-none-any.whl |
|---|---|
| Size | 6.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e217ac0d60a90ca7660ceef332e29d2caa9dc009817221d67c6ce7181d70a5dc
|
|
BLAKE2b-256 checksum How to use checksums |
ecfce36c8bf695df373ec6d687d566de64fa8b2ed05d95794edcc92249cb5a74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0
|