php + mysql - 性能 - 即时自动完成响应

时间:2014-01-11 08:57:58

标签: php mysql performance joomla autocomplete

我正在为输入框构建自动完成功能,类似于Google的即时搜索。

我需要为自动完成功能提供即时响应。我正在执行带有术语的查询的表有数十万条记录,而且有一百多列。例如:500,000条记录,120列。

所以,我有两个问题:

  1. 以尽可能高的速度执行查询。
  2. 在搜索框的自动完成下拉列表中显示结果的快速响应。
  3. 顺便说一下,我正在使用Joomla框架,这可能会导致一些减速。

4 个答案:

答案 0 :(得分:2)

  1. 在一些必要的sql字段上创建索引。
  2. 根据按下的键数使用延迟(如果需要,还可以按下2键之间的时间)。
  3. 添加您自己的缓存逻辑。
  4. 限制查询结果

答案 1 :(得分:1)

当用户输入长度至少为3个字符时,可以触发自动完成。

答案 2 :(得分:1)

如果可能,请考虑为此表使用像Mongodb或Cassandra这样的nosql数据库,因为它们是针对这种数据制作的,尤其是在数据增长的情况下。要将数据从服务器传输到客户端,请使用json。

答案 3 :(得分:0)

在要在数据库中自动填充中显示的字段上使用Indexing

http://dev.mysql.com/doc/refman/5.5/en/mysql-indexes.html