【发布时间】:2016-07-05 20:50:40
【问题描述】:
我有一个包含 7 亿行(每行都有一个 TEXT 字段)和 500 多个搜索词的数据库。查找包含至少一个搜索词的所有行并将它们插入新表的最快方法是什么?
我的第一个想法是使用以下
INSERT INTO my_new_table
SELECT * FROM my_table WHERE text_field LIKE '%term1%' OR ... OR text_field LIKE '%term500%';
或者 Python 会更快,比如
cursor.execute("SELECT * FROM mytable")
for row in cursor:
if any(term in row[text_index] for term in search_terms):
write_row_to_csv_or_mysql(row)
或者也许有更好的方法?
【问题讨论】:
-
你可以计时代码来找出答案
-
第一个评论是对的!你问“如何管理数据”,这不是 python 问题。
-
@PadraicCunningham 我意识到这一点,但你会如何安排我问“也许有更好的方法?”的部分。我发布了 SQL 查询和 Python 代码,以表明我正在尝试一些事情,而不仅仅是盲目地寻求解决方案。此外,两者的时间安排不会提供第一个答案中建议的全文搜索选项。