--comment 形式を使用したコメントで SQL クエリを開始すると、sqlite3 クエリに 375 倍の時間がかかることに気付きました。これは正常な動作ですか?組み込みの sqlite3 モジュールのバグですか?
import pathlib
import sqlite3
import timeit
def test_do(sql):
db_path = pathlib.Path("./test.sqlite3")
con = sqlite3.connect(db_path)
cursor = con.cursor()
table_sql: str = f"""
CREATE TABLE IF NOT EXISTS test (
id INTEGER PRIMARY KEY)"""
cursor.execute(table_sql)
for i in range(1, 43000):
cursor.execute(sql, [i])
con.commit()
db_path.unlink()
sqlslow = f"""
--comment
INSERT INTO "test" ("id") VALUES (?)
"""
sqlfast = f"""
INSERT INTO "test" ("id") VALUES (?)
"""
starttimeslow = timeit.default_timer()
test_do(sqlslow)
print(f"sqlslow: {timeit.default_timer() - starttimeslow}")
starttimefast = timeit.default_timer()
test_do(sqlfast)
print(f"sqlfast: {timeit.default_timer() - starttimefast}")
結果:
sqlslow: 21.521265994
sqlfast: 0.05736106100000171
編集: /* */ スタイルのコメントでも同じ動作が見つかりました。