【发布时间】:2019-08-01 09:00:18
【问题描述】:
使用自动完成文本框从 MySQL 数据库表中检索数据。我的 Ajax 编码正在检索少量数据。在我的数据库表中,我有更多的 300,000 条记录。当我使用大数据时,编码不起作用。
请提供有关检索大数据的建议。 哪种方法最适合检索数据。
查看我的编码。检索少量数据也能正常工作
<input type="text" name="protein_name" id="protein_name">
$("#protein_name").keypress(function (e){
var protein_name = $("#protein_name").val();
if(protein_name != "") {
$.ajax({
url: '<?php echo base_url(); ?>/index.php/Protein_Main/protien_search',
data: {protein_name: protein_name},
dataType: "json",
type: "POST",
success: function (res) {
$("#protein_name").autocomplete({
source: res
});
}
});
} });
PHP 编码
$query = $this->db->query("SELECT `Name_of_the_Protein` FROM `protein` WHERE Name_of_the_Protein Like '".$protein_name."%'");
$protein = $query->result();
回显 json_encode($protein);
【问题讨论】:
-
在这些情况下最好的方法是返回最大数量的记录(例如前 10 条记录)。也因为显示太多记录对用户不可用
-
使用
limit和offset -
尝试为您的问题添加更多上下文并使其更准确。还要避免陷入XY question trap - 基本上是“你在为正确的问题提出错误的问题”
-
@GiacomoM 它的自动完成文本框。
-
最好的办法是在查询中设置限制 10