C++ map处理批量数据性能问题探讨
1. 背景:有一张表里有300万的数据,表字段有36个,根据业务需要,要根据里面的12个字段(都是字符串)进行归并,即这12个字段完全一样就会将它们的一个字段(charge)相加。最终将已经归并好的所有记录输出到文件里。
2. 方案:我现在的做法是select出来后,for循环处理每条记录。
A. 将每条记录的12个字段拼接成串,作为key,该条记录指针作为value,放入到map中,
B. 然后每条记录进来时都到map里查找,如果发现key已经存在则累加charge;
C. 如果没找到key值就push到map里。
3. 问题:怎样才能提高其效率。因为按照目前的情况,300万数据要跑10多个小时。