我试图在django中以编程方式生成大量虚拟数据,Model2FK
引用了两个模型,Model1
和Model2
,它们有超过10万条记录。我一直在使用bulk_create
来生成Model2FK
数据,但是生成10000个批量大小为1000的对象需要大约120秒。这不够有效,无法在合理的时间内生成数据(目前生成所需的所有数据需要一周以上的时间)。你知道吗
我怀疑这很慢,因为django或mariadb正在对每个创建的对象的外键执行检查,这会导致很长的查找时间,因为数据库会查找这两个引用以确保它们存在。因为我是自己生成数据的,所以我知道密钥存在,希望跳过这一步。我曾尝试在mariadb中使用SET FOREIGN_KEY_CHECKS=0;
来禁用外键检查,但它似乎只针对那个mariadb会话进行更新,因此没有反映在我的django脚本中。此外,如果可能的话,我希望能够完全在我的django脚本中管理它,这样我就不需要每次需要运行大型数据创建任务时都连接到数据库。你知道吗
我不想修改我的Model
定义而没有这些外键约束,我只想在生成我知道不会通过这些检查的数据时禁用它们。这在django可能吗?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐