java多线程    Java入门    vsftp    ftp    linux配置    centos    FRP教程    HBase    Html5缓存    webp    zabbix    分布式    neo4j图数据库    

数据大规模插入效率问题

CSDN网友问:

目前有一个需求,用户需要在短时间内将几万条数据导入 MSSQL 数据库。

如果有一条无法导入,需要知道是哪条数据出的错。

导入之前最好还要根据条件验证一下数据是否存在,存在就删除。

现在我一条一条判断导入,非常缓慢。

请问有什么好的思路么?

月小升答:

你慢在搜索上。每次检查会相当消耗资源

1.如果数据有关键字段,能表示重复 比如用户ID号userid。那么把这个字段userid做唯一索引(插入的时候进行try catch 遇到重复会自动被catch,你就知道哪条重复了)被插入的永远都是不重复的

2.如果没有关键字段,所有字段合并做MD5值,单独加个字段叫md 做成唯一索引,然后try catch,原理和1相同

数据库的插入效率很高,搜索效率却很低。主要你要扫描的记录会越来越多,所以搜索会慢。避免搜索就变线性时间了。

(几万条数据,玩的还算比较少,我用这个办法玩过1000万的数据)


This entry was posted in JAVA, 高并发与大数据 and tagged , , . Bookmark the permalink.
月小升QQ 2651044202, 技术交流QQ群 178491360
首发地址:月小升博客https://java-er.com/blog/data-big-insert/
无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢
您的评论是我写作的动力.

Leave a Reply