0
我正在使用ldap搜索来获取用户信息。总共有500条记录和一条从LDAP获取用户信息的函数被称为500次。php - ldap搜索需要将近30-35秒才能搜索
inside while loop
$userInfo = getUserInfo($booking_info['user_id']);
下面是getUserInfo函数。
function getUserInfo($passedUserId){
global $ldapConnection;
global $bind;
global $baseDn;
if($bind){
$ldapFilter = "(sAMAccountName=" . $passedUserId . ")";
$ldapResult = ldap_search($ldapConnection, $baseDn, $ldapFilter);
$ldapInfo = ldap_get_entries($ldapConnection, $ldapResult);
if(isset($ldapInfo[0])){
if($ldapInfo[0]["givenname"][0]){
$firstName = $ldapInfo[0]["givenname"][0];
}
if($ldapInfo[0]["sn"][0]){
$lastName = $ldapInfo[0]["sn"][0];
}
if($ldapInfo[0]["mail"][0]){
$emailAddress = $ldapInfo[0]["mail"][0];
}
if ($ldapInfo[0]["extensionattribute1"][0]) {
$costCentre = $ldapInfo[0]["extensionattribute1"][0];
}
if ($ldapInfo[0]["department"][0]) {
$organizationalUnit = $ldapInfo[0]["department"][0];
}
if ($ldapInfo[0]["manager"][0]) {
$lineManager = split("=", split(",", $ldapInfo[0]["manager"][0])[0])[1];
}
return Array($firstName, $lastName, $emailAddress, $costCentre, $organizationalUnit, $lineManager);
}
}
return Array('None', 'None', 'None', 'None', 'None', 'None');
}
这需要大约30-35秒来完成请求。
如何优化此功能以加快搜索速度?
很难说瓶颈可能在哪里......你可以用'return true;'替换'getUserInfo'函数中的所有东西,然后再次运行它,看看是否会导致响应时间慢。 – Daniel
谢谢@Daniel是的,我发现'ldap_search'正在让它变慢。那么,如何让内置函数快速工作呢? – Valay