大量数据想均匀分布到不同的数据库存储,当前方法将key进行MD5或CRC计算,取最后一位分别对应到相应的存储位置。测文本17721088行。
两个脚本如下:
MD5部分
import hashlib import time file_list = open('di.txt') start =time.time() for get_str in file_list: if get_str[-1] == '\n': get_str = get_str[:-1] get_crc = hashlib.md5(get_str).hexdigest() #print get_crc end = time.time() print end-start
CRC部分
import zlib import time file_list = open('di.txt') start =time.time() for get_str in file_list: if get_str[-1] == '\n': get_str = get_str[:-1] get_crc = zlib.crc32(get_str) & 0xffffffff end = time.time() print end-start
md5计算用58.81秒,crc计算用27.06秒。CRC速度比md5快一倍。但是MD5是16进制,CRC是十进制。如果要将CRC转为16进制,所用时间和MD5用时相似。
发表评论