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

Uploaded Source

Built Distributions

singlestoredb-1.0.1-cp38-abi3-win_amd64.whl (279.4 kB view details)

Uploaded CPython 3.8+ Windows x86-64

singlestoredb-1.0.1-cp38-abi3-win32.whl (280.3 kB view details)

Uploaded CPython 3.8+ Windows x86

singlestoredb-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (339.9 kB view details)

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

singlestoredb-1.0.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (337.8 kB view details)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

singlestoredb-1.0.1-cp38-abi3-macosx_10_9_universal2.whl (301.7 kB view details)

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

File details

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

File metadata

  • Download URL: singlestoredb-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 7ed2eab9c9b441e1ddaeeeab967238ee96f87fc1ed4b81c6a04a6f204b8d485c
MD5 d0f2c682bbd79f6208273f3d538a1cd6
BLAKE2b-256 b6796323f5beb93105e8b0902d9cf80d58dd81fb672b09ace1d451e04490084c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a979c9a85ec4e873c4092cf95cdcac4d3d5b066df96b12f952c091bd45c0915a
MD5 a24686241e9cf5f2b8ea3059e93291f9
BLAKE2b-256 70fd7d6aeba3f79e27cd1193a0e8e4b029496268d9570862fb0ab45b29bbb283

See more details on using hashes here.

File details

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

File metadata

  • Download URL: singlestoredb-1.0.1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 280.3 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.1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 73db0540c6582d6c84b02cfbf7a3c9542b7bdb9a1fbf8a4184df0b572749938b
MD5 959ddc44cbcfab22867d543e7f153c35
BLAKE2b-256 f4deaa372207de29380fb7be0d8278267caa2f61398de279a2bdc0cf0fa7706e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32c5c64b160b2bd51e0a29f521a38575af4d4ddc4c931c0807239ea63e9ce978
MD5 ea899283ddfedba25cb901ae872a9755
BLAKE2b-256 4fc1b083199dae0a523ec0d606404a5243d9daa1349838e3ffc00dc6dfd244fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a5a207a99daad7c86281bc723f4abf4d7ccf17b10c48da0686b0383e07de181b
MD5 2f4a8783871a88c4ed86fe51a9822ff8
BLAKE2b-256 0eeb02b473d5a83ed8418eb247479c37ce1c616646a842324211f283ee02434a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for singlestoredb-1.0.1-cp38-abi3-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6802bf28c0059112af416611f2f1b16e62cb1e1a20a07cfaaca971325168da46
MD5 28da98b0f98fec8be256d84dbf8bef46
BLAKE2b-256 5ba11c1fcfcc632032561c882174d8073c74abc56112d171916905e1a16905fb

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