2009-02-02 2 views
3

저는 내부 전자 메일과 사용자와 클라이언트 사이에 자주 나타나는 작은 중소 덩어리의 텍스트를 처리하는 웹 응용 프로그램을 만들고 있습니다. 이 데이터를 저장하는 가장 좋은 방법은 무엇입니까? 데이터베이스 (MySQL) 또는 수천 개의 개별 파일? 압축하는 방법은 무엇입니까 (PHP의 gzcompress() 또는 MySQL의 압축 기능)?엄청난 양의 텍스트를 DB 또는 파일로 저장하는 가장 좋은 방법은 무엇입니까? 압축하는 방법은 무엇입니까?

이것은 공개 응용 프로그램이 아니므로 사용자로드가 최소화됩니다 (한 번에 20 명 미만). 그러나 앱 내에서 매일 많은 의사 소통이 이루어 지므로 시간이 지남에 따라 데이터 양이 상당히 증가 할 것으로 예상됩니다 (압축 이유).

데이터를 쉽게 액세스하고 이식 할 수 있도록 데이터베이스에 보관하고 싶지만 이미지와 관련하여 본 스레드 중 일부는 파일 저장소 사용을 제안했습니다. 어떻게 생각해?

는 세스

편집 명확한 설명, 감사 : 나는 공간에 저장을 압축하는 방향으로 의지 이유있는 텍스트의 검색의 어떤 종류를 필요로하지 않는다.

답변

1

이미 특정 형식 (Excel, Word 문서, PDF 파일 등)의 이미지 및 문서의 경우 파일 저장 공간을 선호합니다. 그러나 원시 텍스트의 경우 데이터베이스를 사용하는 것이 좋습니다. 장애 조치를 위해 여러 컴퓨터에서 복제하는 것이 더 쉽고 텍스트에 대해 하위 문자열 검색을 수행 할 수 있으며이를 압축하는 데 사용할 특정 알고리즘을 알지 못해도 데이터베이스가 더 좋은 방법이라고 생각합니다. 그러나 이미 텍스트 만 가지고 있고 텍스트 일뿐입니다. 파일 저장 방식을 사용하는 다른 형식의 문서.

그리고 뭔가 빠졌 으면 BLOB 대신 CLOB를 사용합니다 (텍스트 만있는 경우).

0

DB를 사용하기로했습니다. 많은 양의 메시지를 저장할 시나리오를 설명합니다. 당신은 시스템에 대한 많은 정보를 제공하지는 않지만, 아마 당신은 메시지에 여러 다른 속성을 분류하고, 그룹화하고 적용하고 싶을 것입니다. 파일 저장소를 사용하는 대신 DB에 메시지의 특성을 유지하는 것이 훨씬 쉽고 빠를 것입니다.

압축 할 때 어떤 방법이 가장 효과적인지 알 수 없습니다. 당신은 아마 두 가지를 선택하기 전에 시도해야합니다.

1

파일을 데이터베이스에 보관하는 주된 이유 중 하나는 저장하는 데이터의 나머지 부분과 일관되게 유지하는 것입니다. 미리 정의 된 데이터 세트 등을 사용하여 백업을 만들고, 다시 배포하는 것이 더 쉬울 것입니다. 또한 트랜잭션 무결성을 보장하는 것이 더 쉽습니다.

텍스트를 파일로 저장하면 웹 서버를 사용하여 서비스하는 것이 더 쉬울 수 있습니다. 이는 웹 서버에서 파일을 캐싱 할 때 볼 수있는 파일을 사용하는 유일한 남은 이점입니다. 데이터베이스의 쉬운 백업과 트랜잭션을 많이 제공하지만 동시에 HTTP 요청의 속도를 향상시킬 수 있습니다.

0

이 "중간 크기"가 얼마나 큰지 궁금합니다. 텍스트가 단지 메시지 (10KB 미만) 이기만하다면, 압축하면 파일 크기가 더 작아지고 데이터베이스 증가에 큰 영향을 미치지 않을 것입니다. 개발 및 유지 관리가 쉬워 져서 단일 쿼리로 모든 것을 사용할 수 있고 파일 내용을 별도로 가져갈 필요가 없습니다.

관련 문제