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