在我的一个客户端项目中,我使用 CodeIgniter , MySQL 和 Bootstrap 4 ,直到最近数据量正常大幅提升。由于数据量很大,一个列表页面需要几乎一分钟才能加载所有数据。列表页面后面的PHP代码是:
function getproductlist() {
$query = $this->db->select('prd.id id, prd.brand_name brand_name, prd.strength strength, prd.status status, prd.remarks remarks, com.company_name company_name, cat.category_name category_name, dos.type_name type_name')->from('bsoft_pharma_product prd')->join('bsoft_pharma_company com', 'prd.company_id = com.id', 'left')->join('bsoft_pharma_product_category cat', 'prd.category_id = cat.id', 'left')->join('bsoft_pharma_product_type dos', 'prd.dosage_id = dos.id', 'left')->get();
return $query;
}
bsoft_pharma_product 表包含 27000 数据, bsoft_pharma_company 表包含 170 数据, bsoft_pharma_product_category < / strong>表包含 1200 数据,最后 bsoft_pharma_product_type 表包含 112 数据。
有谁能告诉我如何优化我的查询? 感谢
答案 0 :(得分:1)
我认为可能有一些解决方案你必须尝试......
解决方案1:
仅在用户到达页面末尾时加载页面数据...赞: 谷歌图片:[当我们查看谷歌图片,我们到达页面的末尾,然后其他一些图像开始加载,直到请求的图像类型结束。
解决方案2:
将数据转换为分页,如每页20/30条记录。
解决方案3:
使用一些徽标/动画加载技巧......如:
使用JavaScript检查页面加载百分比,然后加载类似:动画或公司徽标等内容,因此如果用户必须等待,那么他们就不会感到野猪或认为页面中存在某些问题。