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

Uploaded Source

Built Distributions

singlestoredb-1.4.0-py3-none-any.whl (281.9 kB view details)

Uploaded Python 3

singlestoredb-1.4.0-cp38-abi3-win_amd64.whl (311.2 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.4.0-cp38-abi3-win32.whl (312.3 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (374.2 kB view details)

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

singlestoredb-1.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (371.9 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.4.0-cp38-abi3-macosx_10_9_universal2.whl (335.3 kB view details)

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

File details

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

File metadata

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

File hashes

Hashes for singlestoredb-1.4.0.tar.gz
Algorithm Hash digest
SHA256 83a002b3b48d14125f09e7fb7379f58a7b3d42ba4f7565f14309a52d4ab6d587
MD5 75f1849ccbb6eeed68503dedf566f7d3
BLAKE2b-256 bd9836b3b2077a143d4410a20e5823ce59cdfce5d7d959ef3b94b8cb729f8437

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e76ea472ab1eddaf5d65a64b415640f5bf3847d495c9190d2fd224fa1a676367
MD5 d52b518bc4d11e15899703c014deaf85
BLAKE2b-256 f5960857270fa131f862f9ca323a3fb4c209e4451b7eb05eb41ee094dbf838da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 81d023b549460517e0af4f3f1e55450b9536587cbbd7cf0d695652e7d1d2f208
MD5 61e130f0a51b7c75a7aa7050b664364e
BLAKE2b-256 756752bb3cb320cfc6e8bcb8b70a58e3ac687b6212f19dca9102e37b4cab2aa8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.4.0-cp38-abi3-win32.whl
  • Upload date:
  • Size: 312.3 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.4.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 cd1b84ed8572b67d56daf1dab37fa7cd58aa85f6108811bf3d63d15ef34b4283
MD5 6ff5e249a6608f890fe4429a70b6f3cc
BLAKE2b-256 e3b09855568cd6a63d1bcc11563b39e3e5078d84eb8871c6bb3649e3cca2796f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 55506ad69aea4dfc9cebfddfc580ebb01210a23f91368852a6a735f213517b72
MD5 755d62215b8681afd7eaa7306d524b2b
BLAKE2b-256 a06ada81ab9e1aa0fd1c3902c12b4cddd2fb548e3705ad43d49777652dda6f84

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4ceee80ade6a87a58a429ed5c75d56948b048f66c992f477147fe6333ecdafc3
MD5 157dda31ad1df0e914b9bba91ca34a6d
BLAKE2b-256 9a5dee97c9fcf59ec2c33bb4ea886b88485e24dace26cb3a484bc41e87d0c926

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.4.0-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 078bf898d36649ad22f09e71d50ad404c7936785d203486fc5a25bec3dd18662
MD5 c2c1337228f4fe5d015abbcb2eceeb61
BLAKE2b-256 afb77c4a9d6cad5496f55601807f2dd2676d814558c7baf6b0e0784317371783

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