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=========="