即时搜索是否会占用大量计算能力?

时间:2010-09-15 00:30:11

标签: jquery mysql cpu instant

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

4 个答案:

答案 0 :(得分:4)

索引

索引有帮助,但索引也会降低INSERT / UPDATE / DELETE语句的速度......

MySQL also limits the amount of space you can use to index columns in a table,这取决于引擎类型:

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

数据类型

为作业选择正确的数据类型 不久前,我注意到SO上的一个问题是将TEXT列为数据类型,但仅使用~100个字符。 They reported back to say they saw the query time decrease to a third tenth of the original when they changed the data type to VARCHAR.

最佳查询

请注意,通配符LIKE表达式的左侧会使列上的索引无效。如果您需要这种搜索,请使用MySQL's native MATCH .. AGAINST syntax或第三方支持(如Sphinx)来利用全文搜索(FTS)。如果没有查询,很难提供更多洞察力。

答案 1 :(得分:1)

如果表格正确indexed,在任何SQL数据库中搜索30,000条记录应该非常快。您需要确保您的查询具有可用的索引。您可能还想考虑使用Full-Text Indexing

答案 2 :(得分:0)

这取决于。您的即时搜索实现生成的查询比普通搜索模型多多少?

我见过的大多数Javascript库实际上并没有尝试运行查询,除非游标已经处于非活动状态一段时间。这些查询的查询次数仅为普通搜索的3-4倍。如果您真正对输入的每个字符进行搜索,那么您将不得不处理与输入字符一样多的搜索。

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

答案 3 :(得分:0)

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