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

Uploaded Source

Built Distributions

singlestoredb-1.3.1-py3-none-any.whl (281.1 kB view details)

Uploaded Python 3

singlestoredb-1.3.1-cp38-abi3-win_amd64.whl (310.4 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.3.1-cp38-abi3-win32.whl (311.5 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.3.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (373.3 kB view details)

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

singlestoredb-1.3.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (370.9 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.3.1-cp38-abi3-macosx_10_9_universal2.whl (334.4 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.3.1.tar.gz
Algorithm Hash digest
SHA256 15a0a42c42573a25b246af9405166db53bc1bdf19cb14c8230c23e8683d0b20c
MD5 d1f8088d5b6167aab293f169409022ca
BLAKE2b-256 49938e9afde50fe92ed3a3374019826c22ed6cbd3e0265b481b8dd7c7ff642a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 181d49559bc7137e7114593c12c1274cafeab383b29ab31e0e84807083d9a80d
MD5 dc5848f4881df225fdc89f18a341f626
BLAKE2b-256 e345445e0bee8a51d8d406ff6f474df78f3d800ffa1138b6dffca5080ba90b31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.3.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4440f7ffee756aaa847790b075d3437d0f4070d9409a725c88cb21617ae07760
MD5 10a2da28542d69fe72b179ef46e3fdb1
BLAKE2b-256 b6895a723c3aeee9bac2966428c6442ae761291ec379bb080792f4ac7825fda3

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.3.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 2a23f3e5d8ae567dff833d02646d16662b53905861868f29f063a5027d54ffd9
MD5 2c2f7f1d7c44e53c567ae1fa08a297d8
BLAKE2b-256 ac17bd994eb9e1a07d0ea6e1d98591fb4c37a3281c10f8076515e7e90ea5cf6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.3.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9463c5755a27ff5132abdc78cc903afbc498e17a3f7888a6f0f7213c22ceb61
MD5 48f5e23b9d7551bfe1b6d8f8e41a9fa9
BLAKE2b-256 49ff7032418a5a352dff59541ca38823e36d451e2fbc0dba3d2ba2f7e9c16570

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.3.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4d8ad1d116c40972810d748c7dd2f629096066ab2582b29fcd021b80d9d4f3ec
MD5 b8c826c1bcafe0a066f1e9139aa7f1a6
BLAKE2b-256 3b3b031176cd90321d0228008e0992229f464574ef271c5f069375cae439d66f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.3.1-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b084f05624d002700298f596872ae52ae59ed90cedcf453d15d78b43b9377a53
MD5 d258a6d4c26bbd74e2f6eff09d98809e
BLAKE2b-256 317e91b2401182e76ea2d93634f8ddc0acf065e5e592c41a7d3099be1c7f934b

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