change the database insert and update operation

This commit is contained in:
nigel 2019-03-13 10:28:47 +08:00
parent 366520e067
commit bdaf138111
1 changed files with 22 additions and 7 deletions

View File

@ -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 = {}