2010-08-18 7 views
14

MySQL TEXT 및 MEDIUMTEXT 필드의 크기/저장 제약 조건을 이해하고 있지만 기존 데이터로 필드를 변환하는 데 어떤 부작용이 있는지 전혀 알지 못한다고 (변경을 승인하기 전에) TEXT에서 MEDIUMTEXT로MySQL TEXT 필드를 MEDIUMTEXT로 변환 할 때의 함정이 있습니까?

내 관심사는 주로 성능, 무결성 및 디스크 저장 공간입니다.

감사 데이터베이스 계층에서 성능, 무결성 및 디스크 스토리지 관련하여

답변

23

, 나는 그것에 대해 걱정하지 않을 것입니다.

  • varchar, text 및 blob과 같은 가변 길이 데이터는 패딩없이 저장됩니다.
  • 무결성 관련 문제는 알지 못합니다. 모든 데이터 유형은 데이터베이스 엔진에 의해 원자 적으로 처리됩니다.
  • 물론 긴 텍스트 데이터가있는 경우 데이터를 가져올 때 디스크 I/O 및 네트워크 대역폭에 더 많은 저장 공간과 시간이 필요합니다. 그러나 이것이 데이터베이스에 저장해야하는 데이터라면, 그렇게해야합니다.
나는 하나 개의 가능한 영향을 생각할 수

:

일부 클라이언트 인터페이스 라이브러리 사전 할당 결과를 저장하기위한 버퍼를하고, 클라이언트가 알고하지 않기 때문에 그들은 가능한 최대 값에 대한 충분한 메모리를 할당 데이터를 가져올 때까지

따라서 라이브러리는 에 대해 64KB를 할당하는 반면 mediumtext 당 16MB를 할당합니다. 클라이언트 계층에 메모리 부족이 적은지 조심해야합니다. 예를 들어, PHP는 스크립트에 대해 memory_limit 구성 매개 변수를 가지고 있으며 데이터 결과 집합에 할당 된 버퍼는이를 계산합니다.

+0

빠른 응답 주셔서 감사합니다. Bill! – scooterhanson

+1

'일부 클라이언트 인터페이스 라이브러리'에서이 메모리 문제가 PHP의 이전 mysql 라이브러리에 문제가 있음을 발견했습니다. 그러나 3 년 후 더 이상 문제가되지 않아야합니다. – kasimir

+3

@kasimir : PHP 5.6과 PDO에서,'mediumtext'는'text'보다 더 많은 메모리를 사용합니다 (같은 값, 빈 문자열). 내 간단한 테스트에서 차이는 0.5 MiB 대 1.5 MiB입니다. – Bell

관련 문제