2015-01-27 2 views
0

얘들 아 내 클라이언트 용 대량 이메일 전송 애플리케이션을 만들고 있는데 지금 데이터베이스 아키텍처를 설계 중입니다. 기본적으로 하루에 수십만 개의 이메일이있을 것이며 데이터베이스에 저장해야합니다.SQL Server 데이터베이스에 전자 메일 본문을 저장 하시겠습니까?

이메일 본문을 데이터베이스에 저장하는 가장 좋은 방법은 무엇입니까? varchar(max) 열에 저장할 수 있습니까? 아니면 파일 시스템에 저장하고 데이터베이스에 경로를 저장합니까? 아니면 이에 대한 다른 접근법이 있습니까? 나는 응용 프로그램의 성능에 대해서만 우려하고 있습니다. Btw SQL Server 2008 R2를 사용하고 있습니다.

+0

대부분의 대량 이메일이 템플릿의 유사 콘텐츠일까요? 왜 모든 메시지를 저장합니까? –

+0

글쎄, 다른 것들 사이의 이름은 각 이메일에 맞게 사용자 정의됩니다. 그래서 모든 이메일을 저장해야합니다. – NewbieProgrammer

+0

(변경되지 않은) 템플릿과 몇 개의 변수 필드를 기반으로 나중에 메일 본문을 검색 할 수 없습니까? – Arvo

답변

1

일반적으로 나는, 당신이 당신이 이메일의 내용을 결정해야 자기를하기로 결정하지만 경우 considering your email as spam

을 방지하기 위해 수행해야 할 많은 일들이 있기 때문에 활동을 보내는 대량 이메일을 구축하지 않는 것이 좋습니다 텍스트 만, 포함 된 이미지를 포함 할 수있는 HTML ...

필드 유형으로 varchar(max)을 사용할 수 있습니다. 당신은 당신이 당신이 SqlFileStream API를 사용하는 것이 주어진 더 나은 성능을 제공 할 FILESTREAM을 사용하여 파일과 이메일을 저장하려는 경우 성능은 큰 문제가 그러나 보존 정책

에 대해 생각을 고려하지 않습니다

0

varchar(max)을 사용하면 모든 데이터를 데이터베이스에 보관하여 데이터베이스를 마이그레이션하거나 복제 할 수 있으며 모든 내용을 그대로 유지할 수 있으므로 가장 쉬운 옵션입니다. 데이터베이스 외부에 데이터의 일부를 저장하면 아무런 이득도없이 복잡하게됩니다.

데이터 부분의 성능에 문제가 없으면 스팸 메일을 받고 더 큰 문제가 발생할 것입니다.^H^H^H 이메일.

처음부터 데이터 정리에 대해 생각해보십시오. 각 전자 메일을 별도로 저장하면 시간이 지남에 따라 약간의 디스크 공간이 사용됩니다. 적합한 색인을 사용하면 데이터의 양이 문제가되지 않습니다.

1

SQL Server 2008에 대해 잘 모름 BLOB 또는 TEXT 열이있는 MySQL을 사용합니다.

SQL Server에도 이러한 유형의 필드가 있다고 생각합니다. LONGBLOB 필드에 약 L + 4 바이트를 저장할 수 있습니다. 여기서 L < 2^32입니다.

게다가, 첨부 된 파일도 저장할 수 있습니다.

0

이것을 수행하는 가장 좋은 방법은 아마도 그렇게하지 않는 것입니다. 클라이언트가 왜 이것을하고 싶은지 정확하게 알아야합니다. 사람들은해야한다고 생각하기 때문에 이런 식으로 대량 데이터를 저장하는 경우가 많습니다. 이 데이터를 저장해야하는 경우, 저장 기간은 얼마나되며 아카이빙 프로세스는 어떻게됩니까? 템플리트에 대한 포인터를 저장하는 다른 곳에서 언급했듯이, 삽입 된 값은이 작업을 수행하는 훨씬 더 간결한 방법이 될 수 있습니다. 그러나 다시 필요할 때만 수행하십시오. 전자 메일을 파일 시스템에 파일로 저장하는 것은 이상한 일은 아니지만 수천 개의 파일이있는 디렉토리는 피해야합니다.

대용량 데이터베이스의 경우 고려해야 할 또 다른 사항은 재해 복구 전략입니다. 백업 할 때마다 얼마나 걸릴까요? DR 시나리오에서 복원 할 기간입니다. 얼마나 많은 백업을 보관할 것입니까? 온라인으로 & 온라인을 사용하고 얼마나 많은 공간이 필요합니까? 이와 관련하여 별도의 데이터베이스에 '응용 프로그램 데이터'및 '아카이브 된 데이터'를 갖는 것이 좋은 출발점이 될 수 있습니다.

기술적 인 SQL Server 관점에서 테이블 분할 및 데이터 압축과 같은 도움이 될 수 있지만 요구 사항을 이해하는 것이 여전히 가장 중요한 출발점입니다.

관련 문제