优化网络计算以加速网络

时间:2018-02-07 05:01:07

标签: php mysql codeigniter

我的系统如下

enter image description here

现在,我开发了关于监控销售的网站。经理将为每个产品提供销售目标。然后销售人员可以输入销售的实现,经理将批准。 Web将计算成就并显示获得最佳成就的销售人员。案例预览如图。 如果销售大约10或20人没有问题..但如果销售超过100销售像我的情况在网络销售人员约130人和700批准销售,结果是我的网络很慢,以计算最好的销售和现在销售产品仍在增加。 我用php和CI。 请给我建议解决这个问题的最佳方法

1 个答案:

答案 0 :(得分:0)

您可以在1个查询中创建效果视图:

SELECT sales, (avg( percent_sold )*100) avg_percent_sold
FROM (
    SELECT sales, product, SUM(selling) sum_sold, target, SUM(selling)/target as percent_sold
    FROM (
        SELECT tt.sales, tt.product,  tt.target, IFNULL(ts.selling,0) as selling
        FROM tbl_target tt
        LEFT JOIN tbl_selling ts  ON ( ts.sales=tt.sales AND ts.product=tt.product )
        ORDER BY NULL
    ) tbl_sales
    GROUP BY sales, product
    ORDER BY NULL
) tbl_performance
GROUP BY sales
ORDER BY avg_percent_sold desc 

可以通过在tbl_target和tbl_selling的所有列上添加索引来优化性能。确保使用EXPLAIN query命令检查索引不是最佳的位置。