2020-10-22

it2026-03-30  7

mysql的limit优化查询:(python)

select uid,id from user_play_histories where id>%s order by id limit %s

id使用查出的id  例子:

def user_play_histories_insert_line(conn_mv, conn, medal_id): print "========q_user_play_histories begin==========" cur_mv = conn_mv.cursor() search_cnt = 2000 global g_uids_all dt = datetime.now().strftime('%Y-%m-%d %H:%M:%S') t_sql = "select uid,id from user_play_histories where id>%s order by id limit %s" maxId = 0 while True: cur_mv.execute(t_sql, ( maxId, search_cnt, )) numrows = int(cur_mv.rowcount) if numrows <= 0: break else: uids_insert = dict() for i in range(numrows): row = cur_mv.fetchone() if g_uids_all.has_key(row[0]): if g_uids_all[row[0]] & 0b00000010 == 0: g_uids_all[row[0]] |= 0b00000010 uids_insert[row[0]] = dt else: g_uids_all[row[0]] = 0b00000000 | 0b00000010 uids_insert[row[0]] = dt if maxId < row[1]: maxId = row[1] insert_user_medals_line(conn, uids_insert, medal_id) # 插入 if numrows < search_cnt: break cur_mv.close() print "========q_user_play_histories end=========="

最新回复(0)