home / github / issue_comments

Menu
  • Search all tables
  • GraphQL API

issue_comments: 1294306071

This data as json

html_url issue_url id node_id user created_at updated_at author_association body reactions issue performed_via_github_app
https://github.com/simonw/datasette/issues/1866#issuecomment-1294306071 https://api.github.com/repos/simonw/datasette/issues/1866 1294306071 IC_kwDOBm6k_c5NJYsX 9599 2022-10-28T01:37:14Z 2022-10-28T01:37:59Z OWNER

Quick crude benchmark: ```python import sqlite3

db = sqlite3.connect(":memory:")

def create_table(db, name): db.execute(f"create table {name} (id integer primary key, title text)")

create_table(db, "single") create_table(db, "multi") create_table(db, "bulk")

def insert_singles(titles): inserted = [] for title in titles: cursor = db.execute(f"insert into single (title) values (?)", [title]) inserted.append((cursor.lastrowid, title)) return inserted

def insert_many(titles): db.executemany(f"insert into multi (title) values (?)", ((t,) for t in titles))

def insert_bulk(titles): db.execute("insert into bulk (title) values {}".format( ", ".join("(?)" for _ in titles) ), titles)

titles = ["title {}".format(i) for i in range(1, 10001)] Then in iPython I ran these: In [14]: %timeit insert_singles(titles) 23.8 ms ± 535 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)

In [13]: %timeit insert_many(titles) 12 ms ± 520 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

In [12]: %timeit insert_bulk(titles) 2.59 ms ± 25 µs per loop (mean ± std. dev. of 7 runs, 100 loops each) ``` So the bulk insert really is a lot faster - 3ms compared to 24ms for single inserts, so ~8x faster.

{
    "total_count": 0,
    "+1": 0,
    "-1": 0,
    "laugh": 0,
    "hooray": 0,
    "confused": 0,
    "heart": 0,
    "rocket": 0,
    "eyes": 0
}
1426001541  
Powered by Datasette · Queries took 0.792ms · About: github-to-sqlite