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


Release history Release notifications | RSS feed

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

Uploaded Source

Built Distributions

singlestoredb-1.14.2-py3-none-any.whl (356.0 kB view details)

Uploaded Python 3

singlestoredb-1.14.2-cp38-abi3-win_amd64.whl (387.1 kB view details)

Uploaded CPython 3.8+Windows x86-64

singlestoredb-1.14.2-cp38-abi3-win32.whl (388.7 kB view details)

Uploaded CPython 3.8+Windows x86

singlestoredb-1.14.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (450.7 kB view details)

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

singlestoredb-1.14.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (449.2 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

singlestoredb-1.14.2-cp38-abi3-macosx_10_9_universal2.whl (411.0 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-1.14.2.tar.gz
  • Upload date:
  • Size: 324.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for singlestoredb-1.14.2.tar.gz
Algorithm Hash digest
SHA256 fc947ea7cb99f6bd0a7d027a8e27d3b5f80e35aac7f24f3fb31df81b39e611ba
MD5 253bfe323d139810282ce81751fd4063
BLAKE2b-256 f88abe48b3f6158cf59f99d15b898b53e08e79f427bf60ac64b4b002f49ab6e3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.14.2-py3-none-any.whl
  • Upload date:
  • Size: 356.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for singlestoredb-1.14.2-py3-none-any.whl
Algorithm Hash digest
SHA256 06fa7e3a2006c6980c1e034fef0f88aa0281be13d3604434a4d5f47d8b42369d
MD5 7976a89eac07e2e4cb017a153cedca63
BLAKE2b-256 686e3c35f345fa230036a09c1ffa276b1e8b524a97b92d2b6e961f857d56c29c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.14.2-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 854fec1fd6be5801759fdbef6c763103593e46c3d5aad8028575a3e2eb788eea
MD5 de9174818327cc386f1e65821fe8498b
BLAKE2b-256 a3fc53413119ab061c8dddc734024190d707df60f82b0d441054800cb1ce6999

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.14.2-cp38-abi3-win32.whl
  • Upload date:
  • Size: 388.7 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for singlestoredb-1.14.2-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 eac51596b54c6526f414a8fb1a52945964ad24462c4890de73124beded61a7b2
MD5 5a183067dd202c59a76017c755846768
BLAKE2b-256 be541859f4212bcbb8dc48cf0c62824cb139bbdc979f19fadc682db609822f0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.14.2-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd3e0fa7b097644e739da0c2039903caa46a9c08b758f38cc237923a63c23df4
MD5 846a9581475d315d59fbc8ef43f1680e
BLAKE2b-256 5e745ebc6f67a5e0b12e8e4ac4788293f07f4e5757876a08600cc379d2e22c02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.14.2-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 638f27f256004f1fff4d7f71dee556025deb55a616524d06048988c180bc4b40
MD5 cb861b4d232591451a33a5bdd1a7146d
BLAKE2b-256 e10cdadc95430357bdd96458e271b7cc448fab6917341792fe2141ffa16cdc50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.14.2-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b86ce1d156c099d4a4453f7c663334e197572d11db2c2a5d59128ea43e9a6f38
MD5 be59d43be4065c20275ff5593e4dc1da
BLAKE2b-256 704836bd3b6813e770314b277f01b4bd91c010ff3522c684b5a7d894aad128d2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page