我想知道使用jQuery的即时搜索是否会导致数据库(MySQL)的大量负载。我知道有很多因素需要考虑,但是为了论证,让我们说你有30,000条记录可以浏览?
答案 0 :(得分:4)
索引有帮助,但索引也会降低INSERT / UPDATE / DELETE语句的速度......
MySQL also limits the amount of space you can use to index columns in a table,这取决于引擎类型:
为作业选择正确的数据类型
不久前,我注意到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的全文搜索功能。