1
我正在嘗試解決由ORMs封裝的SQLite固有的999變量限制,例如peewee
。我正在嘗試構建幾行〜50k行和〜20列的表格。但是,由於999的限制,我必須將插入限制爲每插入語句大約50行。這非常慢。sqlite - 快速構建主鍵的表
我該如何讓這個更快?如果我沒有主鍵約束,那麼這個要求就會消失,因爲我可以直接使用pandas
直接轉儲到SQL,但稍後修改主鍵是件痛苦的事情。
下面是一個例子:
from peewee import *
database = SqliteDatabase(None)
class Base(Model):
class Meta:
database = database
colnames = ["A", "B", "C", "D", "E", "F", "G", "H"]
cols = {x: TextField() for x in colnames}
table = type('mytable', (Base,), cols)
database.init('test.db')
database.create_tables([table])
data = []
for x in range(150): # if this number is any higher this crashes
data.append({x: 1 for x in colnames})
with database.atomic() as txn:
table.insert_many(data).execute()
我怎樣才能解決這個限制得到什麼?在peewee
文檔中,他們提到使用apsw
,它能夠修改SQLite max_variables變量,但我擔心將此變量增加到某個龐大數字的影響。
無論問題是什麼,每個INSERT語句的行數太少不是它。 –