The source of this post is in this gist on nbviewer. After reading about the difference between MySQL Connector/Python and MySQLdb on this blog post I wondered how the C Extension option in Connector/Python would perform. If you want to run the code yourself you'll need: Jupyter/IPython, Python 3, Requests, MySQLdb, Connector/Python, Matplotlib, Pandas and MySQL. In [1]: % matplotlib notebook In [2]: import random import gzip import time import pandas as pd import matplotlib.pyplot as plt import requests import mysql.connector import MySQLdb for imp in [ mysql . connector , MySQLdb ]: print ( 'Using {imp} {version}' . format ( imp = imp . __name__ , version = imp . __version__ )) print ( 'C Extension for MySQL Connector/Python available: %s' % mysql . connector . HAVE_CEXT ) Using mysql.connector 2.1.3 Using MySQLdb 1.3.7 C Extension ...