我有两个表,例如“employee”和“employeeleaves”。只是我想计算员工一年请假的天数。 'employeeleaves' 表有过去三年的休假详细信息。 我使用 adodb.inc.php 库文件进行数据库连接。 我有 50 条员工记录和 1000 条休假记录。我的应用程序需要大约 1 分钟的时间来获取数据和显示。当我在 google chrome->developer tools->NEtwork 中看到这个时,等待 (TTFB) - 38.46s。
我想减少这个时间。因为一旦'employeeleaves'表获得更多数据,那么这个等待时间就会增加。 下面我粘贴我的数据获取代码,首先我获取员工列表,并为每个员工计算特定年份的假期。
$employee = new Employee();
$employees = $employee->Find("1=1");
foreach($employees as $employee){
$employeeLeave = new EmployeeLeave();
$employeeLeaves = $employeeLeave->Find("employee = ? and leave_period = ? and leave_type = ? and status = ?",
array($employeeId,'2016','SickLeave','approved'));
if(!$employeeLeaves){
error_log($employeeLeave->ErrorMsg(),true);
}
return $employeeLeaves;
}
以上代码用于休“病假”,我也将同样用于“临时休假”。
只是我想知道,我是否可以让这个查询只扫描包含休假期限为“2016”的行。
employeeleaves 表-字段名称
+-------------------------------------------------------------------------------------------+
| id, employee, leave_type, leave_period, date_start, date_end, details, status, attachment |
+-------------------------------------------------------------------------------------------+
最佳答案
你好吗?
你有2张表,为什么不创建一个查询加入到MYSQL中呢?
会好很多!
SELECT * FROM employee e
INNER JOIN employeeLeave el
ON(el.employee = e.id)
关于php - 在 PHP 中从具有大数据的数据库表中获取数据的等待时间更长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37114393/