3

我想知道使用 jQuery 的即时搜索是否会导致数据库(MySQL)的大量负载。我知道有很多因素需要考虑,但是为了争论,假设您有 30,000 条记录要浏览?

4

4 回答 4

4

索引

索引会有所帮助,但索引也会减慢 INSERT/UPDATE/DELETE 语句的速度……

MySQL 还限制了可用于索引表中列的空间量,这取决于引擎类型:

  • MyISAM:1000 字节
  • InnoDB:767 字节

数据类型

为作业选择正确的数据类型。
不久前,我注意到关于 SO 的一个问题是将 TEXT 列为数据类型,但仅使用约 100 个字符。 他们反馈说,当他们将数据类型更改为 VARCHAR 时,查询时间减少到原来 十分之一。

最优查询

请注意,在 LIKE 表达式的左侧使用通配符会使列上的索引变得无用。如果您需要这种搜索,请考虑使用MySQL 的本机MATCH .. AGAINST语法或 Sphinx 等第三方支持来利用全文搜索 (FTS) 。没有看到查询就很难提供更多洞察力。

于 2010-09-15T00:42:41.840 回答
1

如果表被正确索引,则在任何 SQL 数据库中搜索 30,000 条记录都应该非常快。您需要确保您的查询有可用的索引。您可能还需要考虑使用全文索引

于 2010-09-15T00:33:31.653 回答
0

那要看。您的即时搜索实现比普通搜索模型多生成多少查询?

我见过的大多数 Javascript 库实际上都不会尝试运行查询,除非光标已经不活动一段时间了。这些结果仅是普通搜索的 3 - 4 倍。如果您真的对输入的每个字符都运行搜索,那么您将不得不处理与输入字符一样多的搜索。

话虽如此,这完全取决于查询中涉及的工作量。

于 2010-09-15T00:34:51.137 回答
0

这取决于您如何创建数据库。索引很重要,您选择的列也很重要。您应该考虑的最后一件事是搜索算法。如果您只是在 let's 关键字上使用 where 或 like 子句,我认为这会很好,但如果您追求大内容,那么您可能应该考虑 MySQL 的全文搜索功能。

于 2010-09-15T00:37:23.517 回答