programing

MySQL 긴 문자열을 저장하는 가장 좋은 방법

starjava 2023. 9. 24. 12:17
반응형

MySQL 긴 문자열을 저장하는 가장 좋은 방법

mySQL 전문가로부터 긴 줄의 데이터를 저장하는 가장 좋은 방법에 대한 조언을 구하고 있습니다.

저는 모든 종류의 데이터를 저장하는 데 사용되는 범용 테이블을 가지고 있습니다. 즉, 영숫자 및 숫자 데이터를 저장할 수 있어야 합니다.현재 표 구조는 ID와 실제 데이터가 단일 열에 저장된 상태로 다음과 같이 단순합니다.

id INT(11)
data VARCHAR(128)

이제 더 많은 양의 데이터(최대 500자)를 저장해야 하는데 단순히 varchar 열 크기를 늘리는 것이 가장 좋은 방법인지, 아니면 더 긴 문자열을 저장해야 하는 시간을 위해 새 열(TEXT type 열?)을 추가해야 하는지 궁금합니다.

전문가 중에 조언이 있다면 귀를 기울이겠습니다!제가 선호하는 방법은 단순히 varchar column을 늘리는 것입니다만, 그것은 제가 귀찮기 때문입니다.제가 실행하고 있는 mySQL 버전은 5.0.77입니다.

새로운 500자 요구사항은 홀수 레코드에 대한 것일 뿐이며, 표에 있는 대부분의 레코드는 50자를 넘지 않습니다.128열을 만들어서 미래를 대비할 줄 알았습니다.내가 얼마나 알고 있었는지 보여주는 거지!

일반적으로, 이것은 "정답"을 가진 질문이 아닙니다.MySQL에는 "무한 길이" 텍스트 저장 유형이 없습니다.당신은 사용할 수 있습니다.LONGTEXT, 하지만 그것은 여전히 ( absurd으로 높은) 상한을 가지고 있습니다.하지만 그렇게 한다면, 50자로 된 텍스트에 대한 칼럼의 터무니없는 내용을 다루어야 한다는 이유로 DBMS를 무시하는 것입니다.당신이 그것을 가지고 거의 아무것도 하지 않는다는 것은 말할 것도 없습니다.

따라서 대부분의 미래 대비(TM)는 다음과 같이 제공됩니다.LONGTEXT. 하지만 이 문제를 해결하는 매우 나쁜 방법이기도 합니다.솔직히, 저는 지원 요건을 다시 검토하고 싶습니다.RDBMS의 장점 중 하나는 "도메인"이 없는 문자열(예: 응용 프로그램에서 잘 정의되어 있음)과 임의의 길이를 저장하는 것입니다.

이 문제를 "애플리케이션 설계" 수준에서 해결하려면 NoSQL 키 값 저장소를 사용할 것입니다(그리고 저는 그들처럼 NoSQL 유형에 반대하기 때문에 심각하다는 것을 알고 있습니다). 사소한 변경에도 다소 비용이 많이 드는 변경이라는 것을 알고는 있지만 말입니다.하지만 이것이 DBMS가 궁극적으로 어떤 기능을 발휘할 것인지를 보여주는 것이라면, 앞으로 이와 같은 문제가 발생하지 않도록 지금 전환하는 것이 더 신중할 수 있습니다.RDBMS에서는 데이터 도메인이 매우 중요한 반면, 관계형이 아닌 솔루션에서는 명시적으로 소외되어 있기 때문에 여기서 해결하고자 하는 것으로 보입니다.

MySQL에 갇혀있었다고요?늘리면 됩니다.VARCHAR(1000). 데이터에 대한 요구사항이 없다면 무엇을 하든 무관합니다.

텍스트를 사용할 경우 주의해야 합니다.TEXT 데이터는 데이터베이스 서버의 메모리에 저장되지 않으므로 TEXT 데이터를 쿼리할 때마다 MySQL은 디스크에서 데이터를 읽어야 하므로 인덱스를 사용할 수 없기 때문에 CHAR 및 VARCHAR에 비해 훨씬 느립니다.긴 문자열을 저장하는 더 나은 방법은 nosql 데이터베이스입니다.

사용할 수 있습니다.varchar(<maximum_limit>). 우리가 통과할 수 있는 최대 한도는 65535바이트입니다.

참고: VARCHAR의 최대 길이는 TEXT/BLOB 열과 사용된 문자 집합을 제외한 모든 열에서 공유됩니다.

언급URL : https://stackoverflow.com/questions/15406299/mysql-best-way-to-store-long-strings

반응형