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

Uploaded Source

Built Distributions

singlestoredb-1.4.1-py3-none-any.whl (285.5 kB view details)

Uploaded Python 3

singlestoredb-1.4.1-cp38-abi3-win_amd64.whl (314.8 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.4.1-cp38-abi3-win32.whl (316.0 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (378.0 kB view details)

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

singlestoredb-1.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (375.6 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.4.1-cp38-abi3-macosx_10_9_universal2.whl (338.6 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-1.4.1.tar.gz
  • Upload date:
  • Size: 267.3 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.1.tar.gz
Algorithm Hash digest
SHA256 1fdd37bb612a03a48095ef28a0b80db217f0345a88cb2275f5c9d4e16ff0d029
MD5 b7937429689e363b9f92b4143cb9cc28
BLAKE2b-256 b6e421557938a0f1358a9427215d13fc15c93f470620c03bcd1b9c99b68cfec1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2ca5ad35ee9ecbd8ad9e03e636b26bc237d4a44cddfc0f4a516b8e5fa133033e
MD5 b8ddcce534c1c716f071d9ee624066e5
BLAKE2b-256 4d4ff55ed39a85c55cd20a2bfc8104e25af73b653ed3cfe01217d817d14dda92

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9c93725c43b602a9cedca41f67b0132e33925252019c224fae76cb73d206c82e
MD5 614b9709a815d5fd55e2207bad8905be
BLAKE2b-256 ea7650a0e43bef322742d4f45003ac434a6454b1c957baaf85c22f01464670d5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.4.1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 316.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.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 9e9f1cad5b6972853d817b19993ddb0a892eb0ea99e1b5d461b7bc5185d7f6d2
MD5 c0a44f4a66eb328673a7b73c6221d48f
BLAKE2b-256 625f12e8c5956ce92fe2d36c8f7f66630883d10c4e44885dcd569a2e63509a50

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 696bb791a28eabf7786c2d9a18029047ddff064037cfdbc80735ff8f5e236922
MD5 b3fa95e39ec3a85e17a7fc5e4e146fce
BLAKE2b-256 5034cf2931970697cd59515c8ff01ae385a2cbf84ae8c93d4fde60d93655836d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf016ecbbfaeb95a1099fb868d573e0230cb4cc5bab72b0e09ddd4f60c505ad3
MD5 790c977cc66bfda820de6a0dc469dd04
BLAKE2b-256 8c88ad2fbca76e227673582626305a0793d861f8eadbed719ba02cba8026111c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.1-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6a57b0fbb1ef6481fbc53ee355ef2f9369655d7f99a1892dcfc45f3c67d2d573
MD5 51552f0c392bd3719fb1bcfa778b4185
BLAKE2b-256 ffd19d91cb29d1400982faeda6fff224c77e90a7c847e6f8eace0b9342397035

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