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

Uploaded Source

Built Distributions

singlestoredb-1.4.3-py3-none-any.whl (286.4 kB view details)

Uploaded Python 3

singlestoredb-1.4.3-cp38-abi3-win_amd64.whl (315.8 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.4.3-cp38-abi3-win32.whl (317.0 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.4.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (379.0 kB view details)

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

singlestoredb-1.4.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (376.5 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.4.3-cp38-abi3-macosx_10_9_universal2.whl (339.5 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-1.4.3.tar.gz
  • Upload date:
  • Size: 268.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.4.3.tar.gz
Algorithm Hash digest
SHA256 3d819715e240b4b849641c35fb63d35c9e4ce69c6f7fa8094971f7997a3bb712
MD5 793e15f8ca5a01a578fb1d8bd3b75842
BLAKE2b-256 727ed0e521e38229a8505ecef56b80e29611dbb416b56d14e1a229ba442012be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0ad97d26cab4d666cde68bf69ee6d860a49e25acf828f5da4997708aec7808fc
MD5 477c31db7f0b7ce181a09504f4283e68
BLAKE2b-256 0892f24e99ad056e7d541145af11c3f297a51ab23624acb7769ca6863b39f42f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.3-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b34c1b53ee7562664df6857f0581eb871a13491e4a7e825e309bec25c7ba83aa
MD5 7b3a3ec370ef55d638e2f55630af061d
BLAKE2b-256 2451752d69e9abfc93286b474a0f450f1f4e80a0c2e73e0b6b4c99814a52234b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.4.3-cp38-abi3-win32.whl
  • Upload date:
  • Size: 317.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.4.3-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 e8a7a4570003cde94c4bb79c734c68054e2d7543fb79cbe5af80e525e59cdbff
MD5 6b3c48383335f32cd87d59cb8d0ffd82
BLAKE2b-256 be5bb86989a26b485f660826f16bc95b71f7ee41407ceff670e1aeb36ff4f586

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.3-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4ac43254b2e9774bf31a30dd47d0e2c92d626ed0bdf260075e6a8e5d8f53df1
MD5 98977b895c5bebfa9a0c10130b919f7b
BLAKE2b-256 4d4c7569ea54463dc6b8dc000446029df1fb3e0caf79ee8960d6c9bd4d88cc3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.3-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4f69b031497b4403534d69447cb27fc24675eda42e080ba9942f0dd615995dac
MD5 a1c9500d41eecf2e771901aa69a0e2d7
BLAKE2b-256 1c59bfc2a6bd9a84ecc22dc1ac550303903a74d5b447a8a58bf20c14e786e875

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.3-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 33609f8713d3b013d501c7bd14b7e58ca3e9913f9acec03639e60ebf9ee3c7f9
MD5 62a357cd7edacf4d374ea18352ec0b48
BLAKE2b-256 47cb0fbc767617cd52f254b5ec9ea8fe2aa7e4a9cefae1b38e6c983ab2e7d33c

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