긴 문자열의 데이터베이스에 가장 적합한 방법


12

질문과 답변을 데이터베이스에 저장해야합니다. 질문은 1 ~ 2 개의 문장이지만, 적어도 한 단락 이상이면 더 길어질 것입니다.

내가 지금 알고있는 유일한 방법은 SQL 데이터베이스입니다. 그러나 내가 본 한이 데이터베이스는이 유형 또는 크기의 데이터에 사용되지 않기 때문에 이것이 좋은 해결책이라고 생각하지 않습니다. 이것이 올바른 방법입니까, 아니면 데이터를 저장하는 더 좋은 방법이 있습니까? 원시 문자열을 저장하는 것보다 더 좋은 방법이 있습니까?


전체 텍스트 검색을 보셨습니까? en.wikipedia.org/wiki/Full_text_search
FrustratedWithFormsDesigner

"long"1k, 5M, 1GB를 정의하십시오 ??
James Anderson

왜 "원시"문자열을 좋아하지 않습니까? 데이터가 실제로 문자열입니까, 아니면 구조화 된 데이터입니까? 문자열로 작동하지 않는 무언가를 할 계획입니까? 왜 데이터베이스가 적합하지 않은지에 대한 명확한 이유는 없습니다. 문자열과 동일합니다 (또는 너무 크거나 사용하는 데이터베이스에 따라 CLOBS 일 수도 있음).
psr

나는 평범한 문자열이 아닌 압축 유형을 통해 저장하는 영리한 방법을 언급하고있었습니다. 본질적으로 데이터베이스의 크기가 걱정됩니다.
gsingh2011

1
어떤 RDBMS를 사용하고 있습니까? 오라클은 텍스트 처리 및 검색에 대한 탁월한 지원을 제공합니다.
Matthew Flynn

답변:


19

Mongodb는 훌륭하지만 SQL을 알고 있습니다. 필드에 긴 답변을 저장하는 데 아무런 문제가 없습니다. 이미지 나 파일을 SQL로 저장할 수 있습니다. 최대 필드 크기는 2GB라고 생각합니다.

나는이 대답 자체가 어딘가에 테이블 필드에 저장되고 있다고 거의 긍정적입니다.

수천 개가 있어도 문제 없습니다. 수백만조차도 문제가되지 않아야합니다. 키워드 또는 기타 항목을 검색하는 경우 전체 텍스트 색인 작성을 고려할 수 있습니다. 그러나 문제가 나타날 때까지 최적화하지 않습니다. 컴퓨터는 저렴하고 기본적으로 스토리지는 무료입니다.


11
실제로 문제가 생길 때까지 최적화하지 않으면 +1!
GrandmasterB

4
최대 필드 크기는 ANSI SQL에 지정되지 않으며 DBMS (및 일반적으로 문자 세트, 열 데이터 유형, 스토리지 엔진, OS 등과 같은 몇 가지 다른 요인)에 따라 다릅니다.
tdammers

6

데이터베이스에 긴 텍스트를 저장하는 데 문제가 없습니다 (SQL 또는 기타). 인터넷에있는 거의 모든 블로그 항목 (Wordpress), 뉴스 기사 및 포럼 게시물 (phpbb)이 저장되는 방식입니다. 스택 교환 설정의 특정 세부 정보를 모르지만 귀하의 질문도 데이터베이스에 저장되어 있다고 확신합니다. 대부분의 SQL 데이터베이스에는 TEXT길이에 상관없이 텍스트 데이터를 저장하기위한 필드 유형 또는 이와 동등한 것이 있습니다. 또한 많은 텍스트 검색 시스템을 갖추고 있습니다.

감정이 아닌 기술 지식과 이해를 바탕으로 기술적 인 결정을 내립니다.


5

예, 올바른 길입니다. SQL 데이터베이스에 문자열 저장은 원하는 작업입니다. DB의 내 테이블 중 하나에 일반 텍스트 데이터가 넘쳐나고 성능이 좋습니다.

저장 공간이 걱정된다면 저렴하다는 것을 기억하십시오!

성능이 걱정된다면 걱정하지 않아도 좋은 데이터베이스는 많은 데이터로 확장하거나 확장 할 수 있습니다.

마지막으로하고 싶은 것은 실제로 문제가되기 전에 그것을 위해 최적화를 시작하는 것입니다 (문자열을 DB 또는 무언가에 넣기 전에 문자열 압축). 당신은 더 많은 일을하고 있습니다.


2

큰 문자열 또는 이진 데이터를 저장하는 데 문제가 없습니다. 나는 1 테라 바이트 이상의 이진 데이터가있는 데이터베이스를 사용하여 매우 잘 작동했으며 (postgres) 유일한 나쁜 점은 백업 시간이었습니다.

가장 큰 질문은 "이 텍스트에서 지속적인 검색이 필요합니까?"입니다.

텍스트에서 문자열을 검색하려는 경우 하나의 인덱스 솔루션으로 생각할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.