避免往数据库中插入重复数据,可以使用INSERT IGNORE 或 REPLACE INTO。
INSERT IGNORE 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
REPLACE INTO 如果存在primary 或 unique相同的记录,则先删除掉。再插入新记录。

在SQLAlchemy中,用ORM方式,方便大量插入数据。操作简单。如果也想避免往数据库中插入数据,其实操作也一样的。

engine.execute(User.__table__.insert().prefix_with(‘IGNORE’), {{‘id’: 1, ‘name’: ‘1’},{‘id’: 1, ‘name’: ‘1’},…,{‘id’: 2, ‘name’: ‘2’}})

参考:https://www.keakon.net/2012/12/03/SQLAlchemy%E4%BD%BF%E7%94%A8%E7%BB%8F%E9%AA%8C

参考:http://itindex.net/detail/40939-sqlalchemy-%E7%BB%8F%E9%AA%8C

参考:http://www.cnblogs.com/koka24/p/5327280.html

参考:http://www.jianshu.com/p/e6bba189fcbd

参考:http://www.jianshu.com/p/28d3f5079f50

MYSQL批量插入数据效率问题:http://blog.csdn.net/frinder/article/details/38830723

SQLAlchemy批量插入数据效率问题:http://docs.sqlalchemy.org/en/latest/faq/performance.html#i-m-inserting-400-000-rows-with-the-orm-and-it-s-really-slow