0%
大量数据存存在对比bitmap
发表于
更新于
大量数据存存在对比bitmap
这样的一个场景,数据库中大概有40万条记录,而csv文件中,大概相当于mysql中的数据+部分新增的数据。对于csv中的新记录(mysql没有的)要插入到mysql表中,如果存在,则忽略。在思考这样的脚本,崩溃的原因,执行时间长。在解决方式上:1、重复的数据让mysql来计算,使用insert ignore into,但是考虑到提交不宜过多,采用分批。(实际效果: 非常快,在数据库空的时候,12S,不为空的时候(就是重复数据不添加)的时候,只需要2S )2、在php层面上解决,一次从数据库中获取到所有主键,每次读取一行,判断是不是在数据中,如果在,忽略,最后将新增部分,分批插入。但是计算量都卡在存不存在。
关于存不存在,这个有两种算法可以优化,一个是bitmap,但是需要考虑到bit位存储的大小端问题。另外一种是布隆过滤。当然,40万没有大到那么大,所以也不一定要这样优化。
为啥40万的大数组,判断一个组件这么慢?底层是因为,数据存储的不连续?
nginx_host作用
发表于
更新于
分卷压缩split
发表于
更新于
nginx搭建rtmp服务
发表于
更新于
php中shell_exec实现多进程
发表于
更新于