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

Uploaded Source

Built Distributions

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

Uploaded Python 3

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

Uploaded CPython 3.8+ Windows x86-64

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

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.6.1-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.1-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.1-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.1.tar.gz.

File metadata

  • Download URL: singlestoredb-1.6.1.tar.gz
  • Upload date:
  • Size: 278.2 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.1.tar.gz
Algorithm Hash digest
SHA256 2f854b004c11e0112fd622b6c71c867e57af9565151ea26978ede7ff387d5271
MD5 856c65865d94d7080646c7561a8b8a33
BLAKE2b-256 fe64337e906dc9469dc62b593f2c491ba87ad2b404613091d95bd4f04dc5911b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7065a1701fba73bda48a230bdfb9312ad1c2769aded099458421f19da9236fce
MD5 f18bada349d5cdfdd1146f91e4463f30
BLAKE2b-256 54196bee4dd2534beb39ed87f9ea05cfa0df9358ab67d8ebbef2cbbedd994ce8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 50bb83dab1348516045057110005628320a644cd510bd77f38b0f5dd0d8749ac
MD5 1aa8423930d70e7b0030aa5966e7f847
BLAKE2b-256 e1ed49cbb512ed9319f6077746e7671e5b3e09235a03ce4f8724ca13f77e821b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.6.1-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.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 7c17ad60e7164047e3c6c420b979f410284ef545621fe56c2d65d35c680bba82
MD5 289263ebaadfc4a28c12b533b9ba4e53
BLAKE2b-256 b3d9d2cb836a74dfaf9a23e706b0147b12fc39ec207bf808ca9b7e2c9979530f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 963d0d8f483c8d73b2c06f04c1dcba7732881809418351cf4ab90bb79fb66892
MD5 1866e756aee99b04bc722ad990701436
BLAKE2b-256 bc6e736044295034475bf38e0cc3c84072b69d6d76bda69d6d4f8ff51229f37e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dcc84a56138959b1f929e144d9a3c77aff285f009944bd126f9f27eac633ea3e
MD5 bf09308a52547e1eaf010cf0f979daf3
BLAKE2b-256 edf797b4d79cc460bd594f0081ec2d587b6a32218fe8adbd389dd911fa48426a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.6.1-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 cfe35be81823b3607bcf1331303298ff9463e0eb874eed8b9a8962811e1f682a
MD5 86ab748985031ee29aff0ddff617923b
BLAKE2b-256 7d118d2966d86e5f3021bccd5dc7c86c4239256b8913be1b11d9980c4531f300

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