Jon*_*han 6 mysql sql django insert
我需要将大量数据上传到MySQL数据库.对于大多数模型,我使用django的ORM,但我的一个模型将有数十亿(!)的实例,我想优化其插入操作.
我似乎无法找到使executemany()工作的方法,并且在谷歌搜索后似乎几乎没有任何例子.
我正在寻找正确的sql语法+正确的命令语法+正确的值数据结构,以支持以下sql语句的executemany命令:
INSERT INTO `some_table` (`int_column1`, `float_column2`, `string_column3`, `datetime_column4`) VALUES (%d, %f, %s, %s)
Run Code Online (Sandbox Code Playgroud)
是的,我明确说明了id(int_column1)的效率.
一个简短的示例代码会很棒
jsh*_*jsh 19
这是一个实际使用executemany()的解决方案!
基本上这里的例子中的想法是可行的.
但请注意,在Django中,您需要使用%s占位符而不是问号.
此外,您还需要管理您的交易.我不会在这里讨论,因为有大量的文档可用.
from django.db import connection,transaction
cursor = connection.cursor()
query=''' INSERT INTO table_name
(var1,var2,var3)
VALUES (%s,%s,%s) '''
queryList=buildQueryList()
#here buildQueryList() represents some function to populate
#the list with multiple records
#in the tuple format (value1,value2,value3).
cursor.executemany(query,queryList)
transaction.commit()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11629 次 |
| 最近记录: |