我正在使用Python和模块构建一个 twitter 抓取Tweepy
器应用程序MySQLdb
它将获取数百万条推文,因此性能是一个问题,我想在将其添加到同一个查询之前检查表中是否存在之前的 tweet_id
表架构是:
*id* | tweet_id | text
_____|________________________|______________________________
1 | 259327533444925056 | sample tweet1
_____|________________________|______________________________
2 | 259327566714923333 | this is a sample tweet2
我尝试的代码是,但它执行双重查询:
#check that the tweet doesn't exist first
q = "select count(*) from tweets where tweet_id = " + tweet.id
cur.execute(q)
result = cur.fetchone()
found = result[0]
if found == 0:
q = "INSERT INTO lexicon_nwindow (tweet_id,text) VALUES(tweet_id,tweet.text)
cur.execute(q)
使 Tweet_id 唯一并仅插入推文,会引发异常并且效率不高吗?
那么用一个查询来实现这一目标的最佳执行方法是什么?