优化代码点火器查询



>我有一个包含至少 650,000 条记录的表,并且最多会有 15M+ 条记录。我只是想知道为什么加载某些页面大约需要 8-14 秒,尤其是在搜索和将page_id(pagination)指向最后一页时,考虑到查询非常有限。

型:

function fetch_persons($limit, $id, $search, $district = null, $city = null) {
if($search) {
$this->db->group_start();
$this->db->like('persons.fullname', $search, 'after');
$this->db->group_end();                
}

if(!is_null($district)) {
$this->db->where('persons.district_code', $district);
}
if(!is_null($city)) {
$this->db->where('persons.city_code', $city);
}
if(!is_null($barangay)) {
$this->db->where('persons.brgy_code', $barangay);
}
$this->db->select('
persons.id,
persons.fullname,
persons.address,
persons.sex,                
persons.deceased,   
city.name as city,          
district.name as district,                  
');        
$this->db->join('city', 'city.code = persons.city_code', 'left');
$this->db->join('district', 'district.code = persons.district_code', 'left');
$this->db->limit($limit, (($id-1)*$limit));
$this->db->order_by('persons.id', 'ASC');
$query = $this->db->get("persons");
if ($query->num_rows() > 0) {
return $query->result_array();
}
return false;
}

我试过$this->db->cache_on();但这对我没有好处。

执行searchLIKE时,是否处理所有数据? 以及limit 100, 6000

有哪些方法可以更好地优化查询?

有哪些替代解决方案?

您是否尝试过为数据库编制索引?如果您不这样做,则应节省大约80%的页面加载时间。

相关内容

  • 没有找到相关文章

最新更新