我有两个表,如'employee'和'employmeleaves'。我只是想计算一下这名员工一年休假的天数employeeleaves的表上有过去三年的休假详细信息。我使用adodb.inc.phplib文件进行数据库连接。我有50份员工记录和1000份休假记录。我的应用程序大约需要1分钟才能获取数据并显示。当我在谷歌chrome->开发者工具->网络中看到这一点时,等待(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 |
+-------------------------------------------------------------------------------------------+
你好吗?
您有两个表,为什么不创建一个查询来加入MYSQL?
那会好得多!
SELECT * FROM employee e
INNER JOIN employeeLeave el
ON(el.employee = e.id)