亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

python執行mysql插入時間超長

和你的代碼一樣,為什么我執行mysql插入時花費的時間

http://img1.sycdn.imooc.com//57cc490c0001b64412130658.jpg?[Finished in 164.8s]

正在回答

3 回答

你把插入數據庫的代碼注釋掉,然后只是打印名字和網址,看看需要多久。

0 回復 有任何疑惑可以回復我~
#1

kent324 提問者

注釋掉插入數據庫的代碼后,速度非???基本上秒出結果.
2016-09-05 回復 有任何疑惑可以回復我~
#2

秋名山車神 回復 kent324 提問者

還有這種情況,你把插入到表里面的數據,導出成SQL語句,然后在MySQL的管理工具里面執行那些命令,看看需要多久。
2016-09-06 回復 有任何疑惑可以回復我~
#3

kent324 提問者 回復 秋名山車神

這個我也試過,速度非??? 感謝回復哈 :)
2016-09-07 回復 有任何疑惑可以回復我~
#4

秋名山車神 回復 kent324 提問者

查出原因了嗎
2016-09-07 回復 有任何疑惑可以回復我~
查看1條回復

代碼一樣,這個是數據庫配置不對嗎

pymysql.err.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '~urls~(~urlname~, ~urlhref~)values('Wikipedia', 'https://en.wikipedia.org/wiki/W' at line 1")


0 回復 有任何疑惑可以回復我~
values?=?[]?
#?輸出所有的詞條對應的名稱和URL屬性
for?url?in?listUrls:
	#過濾.jpg或.JPG結尾的URL
	if?not?re.search("\.(jpg|JPG)$",url["href"]):	
		#輸出URL的文字和對應的鏈接
		print(url.get_text(),"<----->","https://en.wikipedia.org"+url["href"])		
		values.append((url.get_text(),"https://en.wikipedia.org"+url["href"]))
try:
	connection?=?pymysql.connect(host="localhost",user="root",password="root",db="wikiurl",charset="utf8mb4")
	with?connection.cursor()?as?cursor:
		sql?=?"insert?into?`urls`(`urlname`,`urlhref`)values(%s,%s)"

		cursor.executemany(sql,values)
		connection.commit()		
except:
	info?=?sys.exc_info()
	print(info)
	print(info[0])
	print(info[1])
finally:
	connection.close()

上面代碼我換了思路,把mysql操作放在最后來做,同時調用cursor.executemany, 一次可以插入多條記錄

0 回復 有任何疑惑可以回復我~
#1

秋名山車神

能夠用自己的思路去優化,非常好。
2016-09-06 回復 有任何疑惑可以回復我~
#2

kent324 提問者 回復 秋名山車神

感覺大批量插入數據還是不寫在for里面比較好, so 就它們提出來放外面
2016-09-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

python執行mysql插入時間超長

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號