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

Uploaded Source

Built Distributions

singlestoredb-1.0.4-py3-none-any.whl (256.6 kB view details)

Uploaded Python 3

singlestoredb-1.0.4-cp38-abi3-win_amd64.whl (284.5 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.0.4-cp38-abi3-win32.whl (285.5 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.0.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (345.0 kB view details)

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

singlestoredb-1.0.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (342.9 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.0.4-cp38-abi3-macosx_10_9_universal2.whl (306.8 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.0.4.tar.gz
Algorithm Hash digest
SHA256 a929d78b54356605e5ab768e775461b13dc2674d5e8f468134d7faa5d3b2ae7c
MD5 f4345803694b49b064e5c87e2f04ef4c
BLAKE2b-256 7bbd03c8c17bd5f115cabac51af8207eb5f84d67d97e42cfe7504633b73640cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 788767f7a515a067f7d1d90ede9c0035539e9edf383752937d3cb23d2e66d6f9
MD5 62bb523bba951532a231863bf5c9d94c
BLAKE2b-256 d3f54ba2884388f76301ae6bb7aabbe452e9796f4a34be219bc280cf11719532

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.4-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5338508e349dcef17457ced2615979378da2fa683f5d784df0da96ae40482e0c
MD5 900bf4ab0c872fba37101c5e3e183e6b
BLAKE2b-256 09bcfc230858db0b1c27a7bfc47aaedb2d10cfadafe3df49027a3fee4302b58f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.0.4-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 77890504e85e2675a6a10715fa3b58016d9e4fb434455b760f62313daf18c474
MD5 c154a52537dcbc6b30a7ac4573ac5e14
BLAKE2b-256 c12b27e558e49a4435dce6c344c2b2c94286382435573cad419be2d08ba270e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.4-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b4cb748af7e1d35764f07c520c8bd591c8b651029af98482922f5422c253c15
MD5 c8386100ab6d8a99f7164eef3d316815
BLAKE2b-256 b6a25bae2797128e87a29b90a62eaefcedc7205fc19ed2674b2420da42da768d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.4-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4640c4f5c7ba8568a3c8a2a394576ee02a4c4fca4a11c87148871f48e136ed2e
MD5 9b22dbd770709e73d502784d4ff5f3d9
BLAKE2b-256 d2e78408e8029eaba35af6ccdc131435be2081fb2409ae9c9575ecd54e7efbb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.4-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 61f281ab920fece2a053323afe5f039bbecebfa26045f8eff06ed985c003e68c
MD5 586fb8785237e9985af741cf8fd9909d
BLAKE2b-256 c8174b9e5bb749df6be3b509d51b9a987dcebaf90739b124555aa66a7c2d1419

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