저는 현재 우리 사이트에 저장된 이미지를 조정하고 있습니다. 모든 사용자에 대해 프로필 이미지가 있는지 찾고 있는데 폴더 구조에 파일이 있는지 확인하여이 작업을 수행합니다.이 작업은 DB 테이블의 이미지 이름 저장/검색 속도가 빠릅니다. ?,더 빠를 file_exists 또는 DB 검색?
내보기에서$gender = ($gender == 1) ? 'female' : 'male';
$filename = SITE_ROOT . $this->img_url . $user_id . 'medium_thumb.jpg';
if (file_exists($filename)) {
$filename = $this->img_url . $user_id . 'medium_thumb.jpg?v=' . time();
}
else {
$filename = '/images/'.$gender.'.jpg';
}
return $filename
필자의 경험에 비추어 말하면 db는 파일 시스템과 이야기하는 것보다 시간이 더 걸린다. – Leri
답변을 얻는 유일한 방법은 벤치 마크를 설정하고 직접 테스트하는 것입니다. 트래픽이 적을 경우 파일 시스템을 검사하는 것이 좋습니다. 초당 수백 개가 있다면 디스크 I/O가 병목 현상이됩니다. –
DB에 데이터를 저장하는 경우 (실제적으로 확장 성이 필요한 경우) 출력에 링크하기 전에 여전히'file_exists()'를 원할 것입니다. 하지만 일반적으로 파일 시스템 쿼리는 데이터베이스 쿼리보다 시간이 훨씬 적습니다. 파일 시스템 쿼리는 최소한의 오버 헤드로 낮은 수준의 운영 체제 호출이기 때문에 가장 단순한 데이터베이스 엔진조차도 아니며 확실히 TCP를 통한 MySQL이 아닙니다. – DaveRandom