나는 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 초가 소요됩니다.
검색 속도를 높이려면 어떻게해야합니까?
병목이 어디에 있는지 ... 'getUserInfo' 함수의 모든 것을'return true; '와 같이 간단하게 대체하고 다시 실행하여 느린 응답 시간을 유발하는지 확인할 수 있습니까? – Daniel
고마워요 @ 대니얼 예. 나는'ldap_search'가 느리게 만드는 것을 알아 냈습니다. 그렇다면 어떻게 내장 함수를 빠르게 작동시킬 수 있습니까? – Valay