Skip to main content

Interface to the SingleStoreDB database and workspace management APIs

Project description

SingleStoreDB Python SDK

This project contains a DB-API 2.0 compatible Python interface to the SingleStore database and workspace management API.

Install

This package can be install from PyPI using pip:

pip install singlestoredb

Documentation

https://singlestore-labs.github.io/singlestoredb-python

Usage

Connections to the SingleStore database are made using the DB-API parameters host, port, user, password, etc, but they may also be done using URLs that specify these parameters as well (much like the SQLAlchemy package).

import singlestoredb as s2

# Connect using the default connector
conn = s2.connect('user:password@host:3306/db_name')

# Create a cursor
cur = conn.cursor()

# Execute SQL
cur.execute('select * from foo')

# Fetch the results
print(cur.description)
for item in cur:
    print(item)

# Close the connection
conn.close()

Connecting to the HTTP API is done as follows:

# Use the HTTP API connector
conn = s2.connect('https://user:password@host:8080/db_name')

Performance

While this package is based on PyMySQL which is a pure Python-based MySQL connector, it adds various performance enhancements that make it faster than most other connectors. The performance improvements come from changes to the data conversion functions, cursor implementations, and a C extension that is highly optimized to improve row data reading.

The package can be used both in a pure Python mode and as well as a C accelerated mode. Generally speaking, the C accelerated version of the client can read data 10X faster than PyMySQL, 2X faster than MySQLdb, and 1.5X faster than mysql.connector. All of this is done without having to install any 3rd party MySQL libraries!

Benchmarking was done with a table of 3,533,286 rows each containing a datetime, a float, and eight character columns. The data is the same data set used in this article. The client and server were running on the same machine and queries were made using fetchone, fetchall, fetchmany(1000), and an iterator over the cursor object (e.g., iter(cur)). The results are shown below.

Buffered

PyMySQL MySQLdb mysql.connector SingleStore (pure Python) SingleStore
fetchall 37.0s 8.7s 5.6s 29.0s 3.7s
fetchmany(1000) 37.4s 9.2s 6.2s 29.6s 3.6s
fetchone 38.2s 10.1s 10.2s 30.9s 4.8s
iter(cur) 38.3s 9.1s 10.2s 30.4s 4.4s

Unbuffered

PyMySQL MySQLdb mysql.connector SingleStore (pure Python) SingleStore
fetchall 39.0s 6.5s 5.5s 30.3s 5.5s
fetchmany(1000) 39.4s 7.0s 6.0s 30.4s 4.1s
fetchone 34.5s 8.9s 10.1s 30.8s 6.6s
iter(cur) 39.0s 9.0s 10.2s 31.4s 6.0s

License

This library is licensed under the Apache 2.0 License.

Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

singlestoredb-1.7.1.tar.gz (282.4 kB view details)

Uploaded Source

Built Distributions

singlestoredb-1.7.1-py3-none-any.whl (304.2 kB view details)

Uploaded Python 3

singlestoredb-1.7.1-cp38-abi3-win_amd64.whl (333.7 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.7.1-cp38-abi3-win32.whl (335.0 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.6 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

singlestoredb-1.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (393.7 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.7.1-cp38-abi3-macosx_10_9_universal2.whl (357.4 kB view details)

Uploaded CPython 3.8+ macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file singlestoredb-1.7.1.tar.gz.

File metadata

  • Download URL: singlestoredb-1.7.1.tar.gz
  • Upload date:
  • Size: 282.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for singlestoredb-1.7.1.tar.gz
Algorithm Hash digest
SHA256 940b3ce1aad4f5c0e2b69736ad04e6f9015ddcf1c78740f9ede963310190ddd8
MD5 52c59cd33738c8005e5ecd863c3055ae
BLAKE2b-256 6fea6a11775291ca2962d2e8c15c56f1d674c15e690fe10365ba2c76a7dcbf84

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-1.7.1-py3-none-any.whl.

File metadata

File hashes

Hashes for singlestoredb-1.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 48a77de20b7a111577ab20ae3619cea0045b894e359cea99359fb2dfbcabbdc6
MD5 2418f4918cb93329cf23197bbd4554c1
BLAKE2b-256 8215fb6ea21e4f4f8919cab3faf7e10cdc28f3886184a53177a3d28e5e291e8a

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-1.7.1-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for singlestoredb-1.7.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d0d714abd40e0c51e0d4374e0d373d4a9f92dd9bc2f484031b13faced6f9b90a
MD5 acc29d77eacc42a416e8b461501d8831
BLAKE2b-256 ee14c670fa66fbbecd69713cc7b4e12d2bb895cc3ab9d08f3c21986a2e8bfc20

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-1.7.1-cp38-abi3-win32.whl.

File metadata

  • Download URL: singlestoredb-1.7.1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 335.0 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for singlestoredb-1.7.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 6b3b3486ca16e6f3931e584f2f45e9d96998b982ab1c073fb23e29c4b5ee162a
MD5 46d3b43cd1fd03dcb94ffcce6ec52146
BLAKE2b-256 b9e8bccb918e35bb06274e50b4b728a7befc0c31a28aee84e969c7ef052b0301

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-1.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for singlestoredb-1.7.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 46f6602c573a36d1539ccbbfb8ec7bc1f4853edb4440cb2d2f0570afd41b30c9
MD5 c7263082024006e4af168d626c689771
BLAKE2b-256 abd77171f7e54184c3effd3826211e5cd2cdf45ea93d94b4fb963a5c145629ee

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-1.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for singlestoredb-1.7.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 42be0bea959338ac674fa0823f54460f180a6e8d8b9e39c84d177ee13713e622
MD5 61b947761f5ab49dddeb727d2f5eb0cb
BLAKE2b-256 abcaa99b346bbf130943e1844a23f815d074d95cc622485afc8e92aa203a448f

See more details on using hashes here.

Provenance

File details

Details for the file singlestoredb-1.7.1-cp38-abi3-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for singlestoredb-1.7.1-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4e250467cd3a2d1d16a265778e66a4855922cef442cb9e1561c8d8768509a051
MD5 541f0e09a8f2c0dffd216e45eb69804e
BLAKE2b-256 0659a8a8678e639163370b871a01593cbead024beb7bc4c6b837def767cf7c26

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page