【发布时间】:2016-01-06 12:18:17
【问题描述】:
背景:
所以我有一个大数组,我从一个来源读取并尝试使用 python(有效地)写入 SQLite3。
目前我使用默认形式:
cursor.executemany("INSERT into mytable1 VALUES(?,?,?)", my_arr.tolist())
现在我想扩展到几十万张表。我希望能够做以下事情(希望):
cursor.executemany("INSERT into ? VALUES(?,?,?)", TableNameList, my_arr.tolist())
问题:
- 有没有办法在不向数组中插入列的情况下做到这一点 在将其转换为列表之前?什么?
- 如果没有这样的方法,那么建议和替代方案是 请求。
我尝试在 stackexchange 中查找,但可能遗漏了一些内容。
我尝试查看 Python SQLite 文档,但没有看到类似的内容。
我尝试了通用的谷歌搜索。
【问题讨论】:
-
my_arr的类型是什么? -
我正在使用 np.empty((row_size,col_size), dtype=object)
-
“现在我想扩展到几十万张表” 为什么?那不是标准化的。改为添加一列;在您将插入
mytable1的位置,将1插入新列。 -
当前列很大,占据了大部分空间。如果我将表拆分为该列上的唯一表,那么我会得到几十万个表(行数相对较小),这些表按对摘要视图计算有用的值进行分组,并且我们会得到一大块改进的足迹。
-
您是将相同的
my_arr值(多行)插入到每个表中,还是将my_arr的每一行插入到不同的表中?也就是说,TableNameList 和 my_arr 之间的映射是什么?
标签: python sql numpy sqlite executemany