【问题标题】:php + mysql - performance - instant auto complete responsephp + mysql - 性能 - 即时自动完成响应
【发布时间】:2014-01-30 09:04:17
【问题描述】:

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

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

所以,我有两个问题:

  1. 以最快的速度执行查询。
  2. 在搜索框的自动完成下拉菜单中显示结果的快速响应。

顺便说一句,我正在使用 Joomla 框架,这也可能会导致速度变慢。

【问题讨论】:

    标签: php mysql performance joomla autocomplete


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

    【讨论】:

    • 此外,请确保将查询结果限制为 10 或 20 个结果。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        在您想从数据库自动完成显示的字段上使用Indexing

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

        【讨论】:

          猜你喜欢
          • 2017-03-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-15
          • 1970-01-01
          • 2016-09-17
          相关资源
          最近更新 更多