国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - 數(shù)據(jù)庫(kù)插入頻繁導(dǎo)致數(shù)據(jù)丟失

瀏覽:110日期:2022-06-20 08:54:51

問(wèn)題描述

插入語(yǔ)句有兩條,循環(huán)插入這兩條只是簡(jiǎn)單寫(xiě)了下插入語(yǔ)句,沒(méi)有捕捉到異常

def process_item(self, item, spider):#print(item)try: with self.connection.cursor() as cursor:#Create a new recordsql1 = 'INSERT INTO staff (XNXQ, department, teacher, gender, title, note1, note2) VALUES (%s, %s, %s, %s, %s, %s, %s)'cursor.execute(sql1, (item[’first’][’XNXQ’], item[’first’][’department’], item[’first’][’teacher’], item[’first’][’gender’], item[’first’][’title’], item[’first’][’note1’], item[’first’][’note2’]))self.connection.commit()#Create a new recordcursor.execute('select max(id) from staff')teacherId = cursor.fetchone()[’max(id)’]print(’teacherId:’ + str(teacherId))print(item[’second’]) sql2 = 'INSERT INTO staffCourse (teacherId, snum, course, credit, teachWay, courseType, classNum, className, stuNum, week, section, location) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)'cursor.execute(sql2, (teacherId, item[’second’][’snum’], item[’second’][’course’], item[’second’][’credit’], item[’second’][’teachWay’], item[’second’][’courseType’], item[’second’][’classNum’], item[’second’][’className’], item[’second’][’stuNum’], item[’second’][’week’], item[’second’][’section’], item[’second’][’location’]))self.connection.commit()except Exception as e: print(’------------------------------------------’) print(e)

查看數(shù)據(jù)庫(kù)時(shí),發(fā)現(xiàn)少了很多,我猜應(yīng)該是頻繁插入導(dǎo)致數(shù)據(jù)丟失的,因?yàn)槲以诓迦霐?shù)據(jù)庫(kù)之前把數(shù)據(jù)print了一下,沒(méi)少。怎么解決這個(gè)問(wèn)題?

問(wèn)題解答

回答1:

你是不是一次性循環(huán)了很多次啊如果我沒(méi)記錯(cuò)的話。數(shù)據(jù)庫(kù)有個(gè)隊(duì)列緩存的,如果一下子塞入太多數(shù)據(jù)占滿了緩存,就會(huì)產(chǎn)生丟失的現(xiàn)象如果有大量數(shù)據(jù)要插入的話,就要自己實(shí)現(xiàn)隊(duì)列,然后定時(shí)插入

或者試試事務(wù)

回答2:

由于看不懂python語(yǔ)法,僅從sql的角度來(lái)提供2種解決方法:1、用事務(wù)的方式去進(jìn)行寫(xiě)入數(shù)據(jù),每1000條數(shù)據(jù)提交一次,例如:

fake code

for data.size BEGINfor 1000 INSERT INTO ...end COMMITend

2、將sql改成批量寫(xiě)入,性能有不少提高

INSERT INTO (...)VALUES (...),(...),(...),(...);回答3:

可以看下數(shù)據(jù)庫(kù)日志,看下執(zhí)行記錄。

回答4:

你雖然代碼里面寫(xiě)了insert之后,commit。但是在什么時(shí)候提交,是在你的項(xiàng)目中的事務(wù)中控制的,而不是你在這里控制的,項(xiàng)目中可能從切面做了事務(wù)的控制。解決方案:1.分頁(yè)插,配置事務(wù),不要一次性插入,分批插入,分批commit數(shù)據(jù)。

相關(guān)文章:
主站蜘蛛池模板: 国产免费观看a大片的网站 国产免费黄色网址 | 亚洲欧美小视频 | 久久久久久久久中文字幕 | 欧美视频精品在线观看 | 一本色综合| 日本欧美做爰全免费的视频 | 久久午夜精品视频 | 久草手机视频在线观看 | 欧美亚洲91 | 精品成人免费一区二区在线播放 | 成人看片黄a毛片 | 国产午夜伦伦伦午夜伦 | 亚洲国产成人久久一区久久 | 免费播放国产性色生活片 | 特级淫片日本高清视频 | 久久久亚洲国产精品主播 | 日本一本久 | 国产视频高清在线观看 | 亚洲免费网站在线观看 | 亚洲经典在线 | 中文字幕国产视频 | 亚洲国产二区三区久久 | 亚洲第一区精品日韩在线播放 | 中文字幕精品视频在线 | 国产一级片免费 | 久久毛片网| 国产成人a在一区线观看高清 | 成年人免费观看视频网站 | 美女黄色在线网站大全 | 成人免费真人毛片视频 | 久久在线 | 在线观看亚洲视频 | 欧美成人毛片在线视频 | 欧美大片毛片大片 | 在线播放一区二区三区 | 久久国产精品久久国产精品 | 欧美毛片在线观看 | 国产精品综合一区二区三区 | 国产精品久久一区一区 | 亚洲成人一区二区 | 色偷偷亚洲第一成人综合网址 |