change the database insert and update operation
This commit is contained in:
parent
366520e067
commit
bdaf138111
|
@ -275,6 +275,9 @@ class myThread(threading.Thread):
|
|||
denominator1 += times1 * times1
|
||||
# calculatedDenominatorMap[uid] = denominator1
|
||||
|
||||
insert_sql_strings = [] # 一个用户提交一次
|
||||
update_sql_strings = []
|
||||
|
||||
for aid in changedArticleSet:
|
||||
time4 = time.time()
|
||||
uSet = a_uSet_map_new[aid]
|
||||
|
@ -312,26 +315,38 @@ class myThread(threading.Thread):
|
|||
# relation_result[uid][uid2] = result
|
||||
# relation_result[uid2][uid] = result
|
||||
relation_result = result
|
||||
|
||||
# 判断结果是否存在
|
||||
time7 = time.time()
|
||||
cur.execute('select relation from "iTags"."user_relations" where uid=%s and uid2=%s', (uid, uid2))
|
||||
temps = cur.fetchall()
|
||||
if len(temps) == 0:
|
||||
cur.execute('insert into "iTags"."user_relations" (uid, uid2, relation) values (%s, %s, %s)', (uid, uid2, relation_result))
|
||||
insert_item = [uid, uid2, relation_result]
|
||||
insert_sql_strings.append(insert_item)
|
||||
else:
|
||||
if relation_result != temps[0][0]:
|
||||
cur.execute('update "iTags"."user_relations" set relation=%s where uid=%s and uid2=%s', (relation_result, uid, uid2))
|
||||
update_item = [relation_result, uid, uid2]
|
||||
update_sql_strings.append(update_item)
|
||||
if len(insert_sql_strings) > 0:
|
||||
time8 = time.time()
|
||||
print("commit之前,一次数据库处理时间为:%.2f" % (time8 - time7))
|
||||
time9 = time.time()
|
||||
con.commit()
|
||||
sql = 'insert into "iTags"."user_relations" (uid, uid2, relation) values (%s, %s, %s)'
|
||||
cur.executemany(sql, insert_sql_strings)
|
||||
con.commit()
|
||||
time9 = time.time()
|
||||
print("一批数据库insert操作时间为:%.2f" % (time9 - time8))
|
||||
if len(update_sql_strings) > 0:
|
||||
time10 = time.time()
|
||||
sql = 'update "iTags"."user_relations" set relation=%s where uid=%s and uid2=%s'
|
||||
cur.executemany(sql, update_sql_strings)
|
||||
con.commit()
|
||||
time11 = time.time()
|
||||
print("一批数据库update操作时间为:%.2f" % (time11 - time10))
|
||||
time5 = time.time()
|
||||
print("一次数据库commit时间为:%.2f" % (time5 - time9))
|
||||
print("article变化,涉及到 %d 人,处理时间为:%.2f" % (len(uSet), time5 - time4))
|
||||
time6 = time.time()
|
||||
print("person变化,涉及到 %d article,处理时间为:%.2f" % (len(changedArticleSet), time6 - time3))
|
||||
|
||||
print('线程' + self.name + '结束!')
|
||||
con.close()
|
||||
# -------------------------开始-------------------------------
|
||||
|
||||
# relation_result = {}
|
||||
|
|
Loading…
Reference in New Issue