【问题标题】:How to load large bulk records in MySql using jquery autocomplete如何使用 jquery 自动完成在 MySql 中加载大批量记录
【发布时间】:2016-09-20 05:29:34
【问题描述】:

我在 MYSQL 的一个表中拥有近 80,000 条记录,我想让它显示在自动完成控件中。

表结构如下所示

Table_name
    -ID
    -Code
    -codeType

在客户端,我制作了如下所示的自动完成脚本

  var Cds = "";
  $.ajax({
    type: "POST",
    url:"cdList.php",
    async: false,
    data:{
        value1 : '9'
    },
    success:function(result){
        Cds = JSON.parse(result);
    }
});
$("#prin").autocomplete({
    minlength : 3,
    source: Cds,
    autoFocus:true,
    width:500
});

cdList.php

<?php

$con = mysql_connect("localhost","***","***");

if(!$con){
    die("Error : ".mysql_error());
}

mysql_select_db("ananth",$con);

$value1 = $_POST['value1'];

$cd9 = array();

$result = mysql_query("select * from Table_name where codeType = '9' AND Code LIKE '$value1%'");
while($row = mysql_fetch_array($result)){
    $cd9[] = $row['Code'];

}
echo json_encode($cd9);
?>

即使我在自动完成控件中设置了 minLength,我仍然觉得获取数据的速度很慢。花了大约30秒。那么如何才能让它变快呢?

【问题讨论】:

  • 嘿,非常抱歉,伙计们,我错误地将客户端脚本作为 value 而不是 value1。所以那个 mysql 查询带来了所有的 80K 记录,让它变得非常慢。现在它工作得非常快。谢谢所有帮助过我的人

标签: php jquery mysql autocomplete


【解决方案1】:

查看this post abot like 运算符。 对于您的情况,我建议使用 query_caching 标志并仅选择一列而不是 *

select Code from Table_name where codeType = '9' AND Code LIKE '$value1%'

【讨论】:

    【解决方案2】:

    LIKE 查询可能需要很长时间...

    出于自动完成目的,您可以使用 MySQL 的 LIMIT 并仅返回一部分相关条目。

    查看此链接: http://www.w3schools.com/php/php_mysql_select_limit.asp

    您还应该索引 codeType 列以加快搜索速度。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      • 2015-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多