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.6.0.tar.gz (278.3 kB view details)

Uploaded Source

Built Distributions

singlestoredb-1.6.0-py3-none-any.whl (297.8 kB view details)

Uploaded Python 3

singlestoredb-1.6.0-cp38-abi3-win_amd64.whl (327.2 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.6.0-cp38-abi3-win32.whl (328.4 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.6.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (390.3 kB view details)

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

singlestoredb-1.6.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (387.8 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.6.0-cp38-abi3-macosx_10_9_universal2.whl (350.9 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.6.0.tar.gz
Algorithm Hash digest
SHA256 a0d04a8bce1771a715cc9c38c9cc3714081cbf3e54eac5161711e0f60445b131
MD5 80bef369893deb5d8be8115c53d0a0dc
BLAKE2b-256 5427943bd3edd340b73182c2d1fe576409fe2b9acea073bbb09381fbe15bcade

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7ec4f6597421b25b94cef8819f121c241857915b929715fda216894ab767ab37
MD5 1b021d1be8edb1a67b3e2cf422760d0e
BLAKE2b-256 7f37c095482fbaac70f3cad55647f47f06946f151c553eaa3967cfe1ec5503cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 47141877a71b6fc090e8cfda2d3a8aa6f4bdd640cea605ffdd7eaafe196b8c13
MD5 24ab2158c178ad6145ed2cf5f5a0ae4d
BLAKE2b-256 08c2103dec4bbdd331f249a704bc786e01e7cd1db7cb9de6f06a7cd95d8aa931

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.6.0-cp38-abi3-win32.whl
  • Upload date:
  • Size: 328.4 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.6.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 57297f125e078efdcab637a049e0670f23193dc5a310063fc6f04b8f3100edc9
MD5 d01cca0893211dead5278253b8e3bbbe
BLAKE2b-256 7395f763c9acb1df5ae12ea9e587cc5b9834618be9b2e26ad9766b75b5ffde3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 559af84d98324bd58609373e54699c07fae52d212cafd4860b260a681b3d2a77
MD5 9f95a45da43fbfb7965e14f553e07f96
BLAKE2b-256 e7f81b4cdefb6abc9e0761c7b3de750548694480b2cd94fd660103e85433665a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 908d93130b415642c1de245315a9028e449f881b0203b9d4b6f935faae221ec6
MD5 6e85f0d6b38e74365eecd2a60e6f72d2
BLAKE2b-256 6de171526ff24fa4b6271ffffab109fd7cc2c5a1b7ec32477c12b094b39836e8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.0-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cb596c8509612449f91f479690c44241f3fa2623ba5cd2f4d6b48eecaa940d88
MD5 45f127de5448f662f38125da8e5a37e1
BLAKE2b-256 ac640f6b4c5e90239c84986a4ff8188ce215ce16a1b58926af068d18ac8c6ddb

See more details on using hashes here.

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