php + mysql - 性能 - 即时自动完成响应
Posted
技术标签:
【中文标题】php + mysql - 性能 - 即时自动完成响应【英文标题】:php + mysql - performance - instant auto complete response 【发布时间】:2014-01-30 09:04:17 【问题描述】:我正在为类似于 Google 的即时搜索的输入框构建自动完成功能。
我需要对自动完成功能有一个即时响应。我正在执行带有该术语的查询的表有数十万条记录和一百多列。例如:500,000 条记录,120 列。
所以,我有两个问题:
-
以最快的速度执行查询。
在搜索框的自动完成下拉菜单中显示结果的快速响应。
顺便说一句,我正在使用 Joomla 框架,这也可能会导致速度变慢。
【问题讨论】:
【参考方案1】:-
在一些必要的 sql 字段上创建索引。
根据按下的键数使用延迟(如果需要,还可以使用 2 个键之间的时间)。
添加您自己的缓存逻辑。
限制查询结果
【讨论】:
此外,请确保将查询结果限制为 10 或 20 个结果。【参考方案2】:当用户输入的长度至少为 3 个字符时,可以触发自动完成。
【讨论】:
【参考方案3】:如果可能,请考虑为该表使用像 Mongodb 或 Cassandra 这样的 nosql 数据库,因为它们是为这类数据而设计的,尤其是在数据会增长的情况下。要将数据从服务器传输到客户端,请使用 json。
【讨论】:
【参考方案4】:在您想从数据库自动完成显示的字段上使用Indexing
。
http://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html
【讨论】:
以上是关于php + mysql - 性能 - 即时自动完成响应的主要内容,如果未能解决你的问题,请参考以下文章
自动完成 jQuery / PHP / MySQL 不返回结果