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