성능 질문에 평소대로 결과가 상당히 다를 수 있으므로 대답은 무엇입니까? 의 경우 더 빠릅니다.
시작하는 장소는 지금하고있는 것처럼 일을 수행하는 데 걸리는 시간을 측정하는 것입니다. 일단 당신이 이것을 한 후에는 자신에게 물어보십시오. 그것은 일을하는 가장 빠른 방법은 아니지만 속도가 그렇게 중요하지 않은 속도 일 수 있습니다.
페이지를 처리하는 데 파일을 가져 오는 데 소요되는 시간은 얼마입니까? 1%? 10 %? 50 %? 이 비율이 높을수록, 당신이 일하는 방식을 바꾸는 것이 더 가치가 있습니다.
사이트 성능은 전체적으로 어떻게됩니까? 각 페이지로드 속도를 두 배로 높이면 사람들이 알아 차릴까요? 그렇지 않다면 성능 튜닝을 수행 할만한 가치가 없을 수도 있습니다.
더 잘할 수 있다고 생각되면 데이터베이스를 사용하여 기능을 구현하고 측정 속도가 더 빠르면 측정하십시오. 다시,이 결과는 매우 가변적 일 수 있습니다. 예를 들어 데이터베이스의 부하가 큰 경우 데이터베이스에서 결과를 가져 오는 것이 훨씬 느려질 수 있습니다. 간신히 사용되는 대용량 데이터베이스가 있다면 매우 빠를 수도 있습니다. 테스트 만이 당신에게 진실을 말할 수 있습니다.
디스크의 실제 파일을 기반으로 파일 이름을 찾기 때문에 현재 작업을 수행하는 방식이 더 간단하고 유지 관리가 간편해집니다. 데이터베이스를 사용하려고하면 데이터베이스의 파일 이름 목록을 파일 시스템의 파일 목록과 동기화하는 것에 대해 걱정해야합니다.
한가지주의해야 할 점은 파일 시스템이 매우 많은 단일 디렉토리가있을 때 많은 파일 시스템이 성능이 저하된다는 것입니다. 이 상황이 발생하면 파일을 여러 하위 디렉토리로 분할하는 것을 고려하십시오. 유명한 접근법은 이름이 az 인 디렉토리를 만든 다음 "a"디렉토리에 "a"로 시작하는 모든 파일, "b"디렉토리에 "b"로 시작하는 모든 파일을 넣는 것입니다. 그러나 이것은 아마도 중요한 것은 수만개의 파일이 있고, 심지어는 특정 파일 시스템과 그 파일 시스템이 실행되는 하드웨어에 달려 있습니다. 의견 :
당신이 결과를 미리 계산하고 데이터베이스 사람들을 저장에 대해 이야기하고 있기 때문에, 나는 데이터베이스에 물건을 넣어보다 더 나은 접근 방식은 캐싱 서버를 사용하는 것을 제안에 따라
(편집
http://memcached.org/와 같이 하이브리드 접근 방식으로 볼 수 있습니다. 지금도 여전히 작업을 수행하지만 결과를 원할 때마다 먼저 캐시를 검사하여 결과가 포함되어 있는지 확인합니다. 그렇다면 캐시 된 결과를 사용하고, 그렇지 않으면 새 glob을 계산합니다.이렇게하면 오래된 캐시 엔트리가 만료되어 새롭고 올바른 캐시 엔트리로 대체 될 수 있기 때문에 데이터베이스와 파일 시스템을 동기화하는 문제를 피할 수 있습니다.
온라인으로 50 명이 넘는 사용자가 온라인에 있다는 것을 고려해보세요. – ArslanCb
이 질문의 핵심 문제는 "사용에 대해 우려하는 것"인 것처럼 보이지만 그 의미가 모두 명확하지는 않습니다. 우리가 도울 수 있도록 당신과 관련된 문제를 더 명확하게 설명하십시오. 귀하의 의견으로는, 당신이 지금이 일을하는 방식에 정확히 어떤 문제가 있습니까? –
감사 네이트. 예, 내 주요 관심사는 CPU/메모리 또는 성능을 말할 수 있습니다. 어떤 옵션이 더 좋습니다. – ArslanCb