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

Uploaded Source

Built Distributions

singlestoredb-1.5.0-py3-none-any.whl (287.1 kB view details)

Uploaded Python 3

singlestoredb-1.5.0-cp38-abi3-win_amd64.whl (316.4 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.5.0-cp38-abi3-win32.whl (317.6 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.5.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (379.6 kB view details)

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

singlestoredb-1.5.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (377.1 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.5.0-cp38-abi3-macosx_10_9_universal2.whl (340.2 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.5.0.tar.gz
Algorithm Hash digest
SHA256 d80e56c40490edb865bedc5868524ad1dba3a54ffd3f4fc5697d2ff10a178a9b
MD5 5ba443d4cd99bbd6ae485f8a2e6ac651
BLAKE2b-256 eacd4429ca190cab055160fd1aadeb8963c5e38a3ee583aded3f24c5a284614e

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b59df72982e092e143e325c675b1d49f211b1efa42d4e5ca9bc53af50b3624e
MD5 52a0cd8623730ea83142fc4f6ade3e3b
BLAKE2b-256 f453e551a2605ce5741aea150a8a1272693c4e2c6a2cf5a39cee9c12db9372e5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.5.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3d77a01908d0775365c34e6fe0fbd0e78b0f89292f1d99138347c54e79cfdcd5
MD5 5f95423ab1e1b5bf32138368deabee7d
BLAKE2b-256 f6dd1f49cbcb1b7849d1ac077dc26a2a8fb671bb2ef4a1132dacc2fc804b7839

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: singlestoredb-1.5.0-cp38-abi3-win32.whl
  • Upload date:
  • Size: 317.6 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.5.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 8780bac24f9855859c457ca0848445911e8cc8e7e625f41bb1c6cf9931840a93
MD5 d4d41b3c56fca7d2fb91c950076c9581
BLAKE2b-256 24ab0e14e13744df5e6b470019897bb4d76472429a19bc14cb479a31074ba4a5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.5.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aae17530ecf366fd10be03e76e88f164346a9c9be24e553aa703213948d9d643
MD5 3a8f0fc0171299bbe82cdb789c14ebdd
BLAKE2b-256 c01f7551d636a11a8dde7287237174f075277b4b6f59c81e23fb81f4f3a98625

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.5.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 904091db6ac572f37cf8a893168b074b3b451f3522f82c8ccabd1101487136be
MD5 d0e4b5a0a85b34cbf858d71aaf0e49d5
BLAKE2b-256 3fbb5e3b41e4cbdc90361d2bd74fa5dd367a6e796dcc82ea73a056872abf3ede

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.5.0-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cf759cd5e83845b6f92f1e2e7a29694d5ace95dc772f6c2a45fc9135d6a16b87
MD5 f0e6ddf0fb9035c0d855d869eb286f5a
BLAKE2b-256 32d9d508f2e9d8103e9d4141cefef673285b4c07b5b28dc1b1cf9c49074bcb20

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