skip to navigation
skip to content

django-mysqlpool 0.1-2

Django database backend for MySQL that provides pooling ala SQLAlchemy.

Latest Version: 0.1-9

A SmartFile Open Source project. Read more about how SmartFile uses and contributes to Open Source software.


This is a simple Django database backend that pools MySQL connections. This backend is based on a blog post by Ed Menendez.

The main differences being:

  1. The work is done for you.
  2. Instead of cloning the Django mysql backend, we import it.

The actual pooling is done using SQLAlchemy. While imperfect (this backend is per-process only) it has usefulness. The main problem it solves for us is that it restricts a process to a certain number of total connections.


Configure this backend instead of the default Django mysql backend.

    'default': {
        'ENGINE': 'django_mysqlpool.backends.mysqlpool',
        'NAME': 'db_name',
        'USER': 'username',
        'PASSWORD': 'password',
        'HOST': '',
        'PORT': '',


There are a number of additional options that can be configured in

  • MYSQLPOOL_MAX - The number of connections allowed in the pool.
  • MYSQLPOOL_OVERFLOW - The number of connections beyond max that can be used temporarily (burst).
  • MYSQLPOOL_RECYCLE - The time (in seconds) before a connection is reaped. This value should be less than the configured timeout value in MySQL. Mysql’s default is 120s, so the default recycle interval is 119s.
  • MYSQLPOOL_TIMEOUT - The amount of time to wait for a new connection to complete before aborting.