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

Uploaded Source

Built Distributions

singlestoredb-1.0.2-cp38-abi3-win_amd64.whl (279.7 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.0.2-cp38-abi3-win32.whl (280.6 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (340.1 kB view details)

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

singlestoredb-1.0.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (338.1 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.0.2-cp38-abi3-macosx_10_9_universal2.whl (301.9 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-1.0.2.tar.gz
  • Upload date:
  • Size: 236.6 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.2.tar.gz
Algorithm Hash digest
SHA256 401f39a060cf873f1482ea3501e3c7306078c1b90aa5bbf83451b9fb8deafc25
MD5 626efb0cc18055637f045b30c19e6d9f
BLAKE2b-256 455e1a4c8defc58bef5c9e5b97174a39d0ac3e99b2f489b37c105adf58f54acd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 754926fea67136f6d171620dd914b5b14a43d96a23866cc8946d8c970dab0d47
MD5 8529954e1b0b725cd11834940c2f32b9
BLAKE2b-256 beee1c18a9047f6409559f898c849bb5b955c69d3bd56932e6ed74463e49f1df

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.0.2-cp38-abi3-win32.whl
  • Upload date:
  • Size: 280.6 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.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 cf925da78459fe921ee3a7f7247e8e89603d836fc4a5a034ef104a137f388672
MD5 ba9a238923280e31fe19fb1347e0c172
BLAKE2b-256 a40e01d04211a5916eae9e9fba947da6f64a57f73f64cfae3be2fff12d787ee1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c20e2af8c82f953d2faa251d4fbaf35b639926517e783ccfabe349d4999aefc5
MD5 ac1c2553c1f1ed77d4a3da91f35a1368
BLAKE2b-256 d2fc9020f1f401fa0e29bd6f135382001bcb3d9171437cd3eec014a49ba13fd4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ca008573edcbc9c13cd75c731664fd3c981713f3b2d1011fcf1cb2fd04e2fd1a
MD5 003f41cb849deb0df6a108dcd08f15a4
BLAKE2b-256 b4bdcc833ea02d96d782f46cef042fc0c0db15220ba0a431926d72a10d5dff44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.2-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6a1fd71541989c648a1f90c92b360ce980d34ff8e7b557e1172029a5f2a73083
MD5 4858ab2fb032f9a38ee447b693f355f3
BLAKE2b-256 a182b18767fd3ed2b8e189cfe6164adb96c8f9b7035ce4c50170a4ba933ae581

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