在PHP中使用大数据从数据库表中获取数据时需要更多的等待时间
我有两张表,像“employee”和“employeeleaves”。我只是想计算一下员工一年中休假的天数employeeleaves'表包含过去三年的休假详细信息。 Im使用adodb.inc.php lib文件进行数据库连接。 我有50份员工记录和1000份休假记录。我的应用程序大约需要1分钟来获取数据并显示。当我在谷歌浏览器->开发者工具->网络,等待(TTFB)-38.46s中看到这个 我想减少这一时间。因为一旦“employeeleaves”表获得更多数据,那么等待时间就会增加。 下面我粘贴了我的数据获取编码,首先我获取员工列表,并为每个员工计算特定年份的假期在PHP中使用大数据从数据库表中获取数据时需要更多的等待时间,php,mysql,Php,Mysql,我有两张表,像“employee”和“employeeleaves”。我只是想计算一下员工一年中休假的天数employeeleaves'表包含过去三年的休假详细信息。 Im使用adodb.inc.php lib文件进行数据库连接。 我有50份员工记录和1000份休假记录。我的应用程序大约需要1分钟来获取数据并显示。当我在谷歌浏览器->开发者工具->网络,等待(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)
你好吗
您有两个表,为什么不创建一个查询以加入MYSQL
那会好得多
SELECT * FROM employee e
INNER JOIN employeeLeave el
ON(el.employee = e.id)
我不确定运行查询速度太慢是否是您的应用程序的错。您是否在mysql中激活了slowlog?它在哪台机器上运行?此外,您是否可以直接在数据库上手动执行查询,以查看查询本身是否同样慢?您是否可以向我们展示EmployeeLeave类,特别是MySQL workbench中的Find方法,当我执行相同操作时,当我给出确切的年份和休假类型时,它会在0秒内显示结果。但是在这个编码中,我必须为所有员工循环。对于每个员工,我都在读同一个表。我不确定运行查询速度太慢是否是你的应用程序的错。您是否在mysql中激活了slowlog?它在哪台机器上运行?此外,您是否可以直接在数据库上手动执行查询,以查看查询本身是否同样慢?您是否可以向我们展示EmployeeLeave类,特别是MySQL workbench中的Find方法,当我执行相同操作时,当我给出确切的年份和休假类型时,它会在0秒内显示结果。但是在这个编码中,我必须为所有员工循环。对于每个员工,我都在读取相同的表。我使用adodb活动记录方法。我不知道如何使用join。看这个:我使用adodb活动记录方法。我不知道如何使用join。请看: