5

我有一个 mysql 数据库,用户可以在其中输入文本。然后,他们需要能够搜索此文本。我刚刚实现了 mysql 全文搜索,它确实使搜索速度更快。

然而,毫不奇怪,它使插入速度变慢了。但我对慢了多少感到惊讶。单次插入可能需要 0.5 - 1.5 秒。

该表有 3 个索引列:

title (max length 200)
description (max length 3000)
content  (max length 10000)

此时我的表中只有大约 2000 条记录,与以后的记录相比,这算不了什么。

有什么建议么?这个问题一般是怎么处理的?插入需要这么长时间是正常的吗?

我不需要全文搜索的所有功能。我真的只需要相当于 AND、OR、-、+、“”。所以没有权重等。可以关闭索引以使其更快吗?

4

1 回答 1

2

根据eggyal的评论回答。

我最终安装了Sphinx。这很棒。我正在使用它的实时索引。快速搜索和快速插入。比 mysql 自由文本插入/搜索快得多。当然,我的数据库很小。他们有使用大型数据库快速实时索引的技巧(分为 2 个索引,一个带有旧数据,一个带有新数据),但我不需要那个。

顺便说一句:我使用的是 Python/Django,不需要安装任何 api 或库,除了 sphinx 本身:

import MySQLdb
connection = MySQLdb.connect(host='127.0.0.1', port = 9306) 
cursor = connection.cursor()
cursor.execute("select id from my_index where match('stackoverflow')")
results = cursor.fetchall()
# I use my regular connection to insert the IDs into a table in my regular database and then join with that to get actual data.
于 2013-08-10T07:26:20.817 回答