在PHP中,从具有大数据的数据库表中获取数据需要更多的等待时间


More Waiting time in getting data from database table with large data in PHP

我有两个表,如'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)