2017-11-04 5 views
0

650 열 1 행이있는 MySQL 테이블이 있습니다. 이것이 좋은 디자인 인 (내가 상속 한 것임)이라는 것을 알고 있으며 간단한 2 열 레이아웃으로 옮길 것입니다. 그러나 지금은 그것을 이해할 수있는 다른 문제를 진단하려고합니다. 현재 직면하고있는 시스템 구성 문제를 숨기려면 디자인 문제를 해결하고 싶지 않습니다.AWS 서버가 아닌 localhost에서는 MySQL 열 너비 제한으로 실행

배경 :

  1. 데이터베이스의 "버전 0"을 구축하기 위해 skeleton.sql 파일을 사용 : 내가 웹 응용 프로그램의 인스턴스를 구축 다음 단계를 수행하는 시스템을 가지고있다.
  2. "upgrades"디렉토리를 통해보고있는 upgrade.sh 스크립트를 실행하고 ...
  3. ... 데이터베이스 구조를 변경하기 위해 각 업그레이드 파일을 실행합니다 (이미 너무 넓은 영역에 새 열을 추가하는 것을 포함). 표)를 올바른 순서로 사용하십시오.

문제입니다, 내 로컬 호스트 서버 (WAMP) 3 단계에서 스크립트 중 하나를 실행하는 동안, 나는 그 테이블에 열을 추가하려고 시도하는 오류 받고 있어요에 :

Row size too large. The maximum row size for the used table type, not counting BLOBs, is 8126.

다시 말하지만, 이론적으로 테이블이 너무 넓다는 것을 알지만, 얼마나 넓은지를 계산할 수있는 쿼리는 모른다. 또한, 나는이 오류를 내 RDS 서버에서 실행하지 않을거야, 그리고 이후로 나는 어떻게 비교할 수 있는지 모르겠 테이블의 "너비"를 어떻게 해야할지 모르겠지만 (주어진 localhost의 VARCHARs 채워집니다 FEWER자를 사용하면 관계없이 더 작을 것으로 기대합니다).

StackOverflow에서 읽는 모든 내용은 엔진에 관계없이 모든 테이블의 "폭"제한이 같다고 말합니다. 나는 그것이 구성 문제라고 생각하지만, 이것이 하드 한도 인 경우 내 RDS 서버에서는 작동하지만 localhost에서는 작동하지 않는 이유는 무엇입니까?

답변

0

내 생각에는 문자 코드가 다릅니 까? 그걸 들여다 봤니? (미안하지만 새로운 사용자를 언급 할 수는 없습니다.)

+0

문자 코드의 차이는 무엇입니까? 그들은 둘 다'UTF-8'을 사용하고 있고, skeleton.sql 파일은 같은 코드 저장소에서 왔습니다. 그들은 동일합니다. – Bing

+0

그건 내 대답 - UTF8 ANSI/ASCII보다 더 많은 공간이 필요합니다. – 2012