我想知道使用jQuery的即时搜索是否会在数据库(MySQL)上造成巨大的负载。我知道有很多因素要考虑,但是出于争论的缘故,假设您有30,000个记录可以通过?

有帮助吗?

解决方案

索引

索引有帮助,但索引也减慢了插入/更新/删除语句...

MySQL还限制了您可以用来用于索引列的空间数量, ,这取决于引擎类型:

  • 迈萨姆: :1000字节
  • Innodb: :767字节

数据类型

为作业选择正确的数据类型。
不久前,我注意到一个问题,因此将文本列为数据类型,而仅使用约100个字符。 他们报告说他们看到查询时间减少到 第三 第十 将数据类型更改为varchar时的原件。

最佳查询

请注意,像类似表达式的左侧的通配符使列上的索引无用。如果您需要此类搜索,请使用任何一种 mysql的本地 MATCH .. AGAINST 句法 或像狮身人面像这样的第三方支持。在不看到查询的情况下,很难提供更多的见解。

其他提示

在任何SQL数据库中搜索30,000个记录,如果表格正确,则应非常快 索引. 。您需要确保您的查询具有可用索引(ES)。您可能还想考虑使用 全文索引.

那要看。与普通搜索模型相比,您的即时搜索实现会产生多少查询?

我看到的大多数JavaScript库实际上并没有尝试运行查询,除非光标已经不活动了一段时间。这些结果仅为平面搜索的3-4倍。如果您真正在输入的每个字符上运行搜索,那么您将不得不处理与字符的输入一样多的搜索。

都说,这完全取决于查询中涉及多少工作。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top