Python一些可能用的到的函数系列98 筛选读取mysql的键值集合

该博客介绍了一个Python函数,用于从MySQL数据库中通过id范围高效地获取键值集合。函数`mysql_get_key_set_by_range_var`利用tqdm进行进度显示,支持自定义范围、步长和数据库配置,适用于大数据量的键值比较操作。适用于具有自增主键的表,也可适应其他NoSQL库的时序变量读取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明

有时候需要做两个表键值的比对,字符型的键值以md5为例,即使是1亿的记录也就是是3.2GB的大小,放在本地是完全可行的。这里写一个从mysql从获取键值集合的函数

内容

函数

import tqdm
# msyql:通过一个range变量获取某个key变量的集合
def mysql_get_key_set_by_range_var(table_name, key_var, range_var='id',range_start = None, range_end= None, step=10000,mysql_config = None, fs = None):
    range_list = list(range(range_start,range_end,  step))
    range_list1 = range_list + [range_end]
    get_mid_sql = '''select %s from %s where id >= %s and id < %s''' 
    table_key_set = set()
    for i in tqdm.tqdm(range(len(range_list1)-1)):
        tem1 = fs.mysql_exe_sql_with_cursor(get_mid_sql % (key_var,table_name,range_list1[i], range_list1[i+1]),mysql_config)
        tem1_set = set([x[0] for x in tem1])
        table_key_set = tem1_set |table_key_set
    return table_key_set

一般每个mysql表都会设置id自增主键,所以默认的范围过滤使用id。对于其他的Nosql库,按照统一时间轴的规范一定会有slot时隙变量,一般按照时序变量读取即可。

使用

the_set = mysql_get_key_set_by_range_var('YOURTABLE', 'THE_KEY',range_start=1, range_end= 10000000, mysql_config=YOURCONFIG, fs=fs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值