2014-09-04 3 views
0

내 PHP 프로젝트 중 하나는 데이터베이스로 mysql을 사용합니다.이 프로젝트에서 PHP 프론트 엔드는 데이터베이스를 수정하도록 사용자에게 권한을 부여합니다. 그리고 사용자가 입력 한 데이터가 열에 저장됩니다.mysql의 특정 열에 무제한 데이터를 저장하는 방법

이전에 나는 sallint (255)로 datatype을 사용하고있었습니다. 데이터베이스가 커지기 시작했을 때 요구 사항이 자동으로 사용자가 입력 한 데이터에 대한 더 많은 스토리지를 요구했기 때문에 TEXT보다 더 많은 데이터 스토리지를 요구하는 특정 시점이 발생했습니다. 특정 열이 무제한 데이터 저장을 제공 할 수있는 방법이 있습니까?

답변

0

당신이 볼 수있는 두 가지 이상의 종류가 있습니다

  1. LONGTEXT : 4,294,967,295 또는 4기가바이트 (2^32-1)의 최대 길이 텍스트 컬럼 문자. 값에 멀티 바이트 문자가 포함되어 있으면 유효 최대 길이가 짧아집니다. LONGTEXT 컬럼의 유효 최대 길이는 클라이언트/서버 프로토콜 및 사용 가능한 메모리에서 구성된 최대 패킷 크기에 따라 달라집니다. 각 LONGTEXT 값은 값의 바이트 수를 나타내는 4 바이트 길이 접 두부를 사용하여 저장됩니다.
  2. LONGBLOB
0

BLOB 및 TEXT 값은 당신이 그들을 사용하여 몇 가지 제약이 발생할 수 있습니다, 매우 긴 될 수 있습니다 정렬 할 때 컬럼의

첫 번째 max_sort_length 바이트가 사용된다. max_sort_length의 기본값은 1024입니다. 서버 시작 또는 런타임시 max_sort_length 값을 늘리면 정렬 또는 그룹화에서 더 많은 바이트를 크게 만들 수 있습니다. 보다 오히려 임시 테이블을 사용하여 처리하는 쿼리의 결과에 BLOB 또는 TEXT 컬럼의

mysql> SET max_sort_length = 2000; 
mysql> SELECT id, comment FROM t 
    -> ORDER BY comment; 

인스턴스가 디스크에 테이블을 사용하도록 서버를 원인 : 모든 클라이언트는 세션 max_sort_length 변수의 값을 변경할 수 있습니다 메모리 MEMORY 스토리지 엔진이 해당 데이터 형식을 지원하지 않기 때문에

+1

나는 당신이 여기서 말한 것을 이해하지 못했지만, 제 2의 대답을 받아들이고 있습니다. – Neenu

관련 문제