Skip to main content

Django database backend for MySQL that provides pooling ala SQLAlchemy.

Project description

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

SmartFile

Introduction

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

http://menendez.com/blog/mysql-connection-pooling-django-and-sqlalchemy/

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.

Usage

Configure this backend instead of the default Django mysql backend.

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

Configuration

There are a number of additional options that can be configured in settings.py:

  • 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.

Project details


Release history Release notifications

History Node

0.1-9

History Node

0.1-8

History Node

0.1-7

History Node

0.1-6

History Node

0.1-5

History Node

0.1-4

History Node

0.1-3

This version
History Node

0.1-2

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page