php - 如何加速使用 Yii 2.0 框架开发的 Web 应用程序的性能

标签 php mysql yii2

实际上我需要提高使用 Yii 2 .0 框架开发的 Web 应用程序的性能速度

我使用 Yii2 框架制作了一个 CRM,其中包含一个大型数据库,在该数据库中名为 Employee 的特定表包含20,000条员工记录,因此在执行查询以从表中检索数据时,执行需要时间。

这让我使用这个应用程序很麻烦。

已更新 代码:

public function actionLists($id)
    {
         $countClaimprocess = Employee::find()
            ->where(['id' => $id])
            ->count();

    $claimprocess1 = Employee::find()
            ->select('employee_id')
            ->where(['id' => $id])
            ->one();

    $claimprocess2 = Employee::find()
            ->select('importcompany_id')
            ->where(['id' => $id])
            ->one();

    $claim2 = $claimprocess2->importcompany_id;

    $claim = $claimprocess1->employee_id;

    $claimprocess = Employee::find()
            ->where("employee_id = '$claim'  and importcompany_id = $claim2")
            ->andwhere(" status != 'Deleted' ")
            ->all();

    }

以上代码用于依赖下拉列表,这意味着如果管理员选择 company_name , 它会显示依赖 employee_code属于那个company ,然后管理员再次选择 employee_code , 它将显示从属 employee_name和他们的 family成员(member)姓名。

最佳答案

从记录您的查询开始 (described here)。

如果您已经有了 SQL 格式的查询,请转到您的数据库管理应用程序(例如 phpmyadmin)并执行 EXPLAIN [query_body]; 它会显示您的表是否有正确的索引。如果没有使用索引或者您没有任何索引,您应该通过添加一个或编写更准确的查询来修复它。我敢打赌这不是 yii2 特定问题,甚至不是 php,而是您的数据库系统。

应该在 employee 表中建立索引的列是:employee_idimportcompany_idstatus

还要考虑将 status 列更改为某个枚举整数值(由于它的大小,很难正确索引字符串)。

关于php - 如何加速使用 Yii 2.0 框架开发的 Web 应用程序的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31935037/

相关文章:

css - 如何在 Yii2 Gridview 中更改 1 行的背景

javascript - PHP防止同一页面上多个表单重新提交

mysql - 选择大小写不工作 #1064

java - 表单中的 LocalDate

php - Yii2 如何在网格中添加一个新的操作按钮

php - wkhtmltopdf ContentNotFoundError,代码 1

php - Codeigniter 3应用程序: update MySQL table column and the corresponding view through Ajax

php - 不必要的页面抓取

php - 在 mysql 中导入 CSV 文件并进行电子邮件验证

MySQL COUNT 与 group_concat