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 - 性能 - 即时自动完成响应的主要内容,如果未能解决你的问题,请参考以下文章

腾讯云即时通信 IM 服务端 SDK for PHP

还在用Ajax轮询完成即时通讯?看看Swoole吧

jquery 自动完成 自动补全 实时搜索 实时查询 即时搜索 即时 查询

Eclipse:即时自动完成

Tailwind CSS 没有使用“jit”即时模式自动完成

php中的for 和foreach性能对比