크기가 8.1GB 인 원시 텍스트 파일이 있습니다. 입력 데이터는 매우 정직 : Lab_A (문자열), Lab_B (문자열), 거리 (플로트)MySQL 테이블이 너무 많은 공간을 차지합니까?
내가 LOAD 데이터 INFILE을 사용하여 테이블에 데이터를로드하려고했지만 드라이브가 뛰쳐 공간.
아이디 (INT), Lab_A (VARCHAR), Lab_B (VARCHAR), 거리 (FLOAT) :
대상 테이블은 다음과 같은 형식을 가지고 있었다. Id의 기본 키와 (Lab_A + Distance) 인덱스.
아래 문을 만듭니다
CREATE TABLE 'warwick_word_suite'.'distances' (
'id' INT NOT NULL AUTO_INCREMENT,
'label1' VARCHAR(45) NOT NULL,
'label2' VARCHAR(45) NOT NULL,
'distance' FLOAT NOT NULL,
PRIMARY KEY ('id'),
INDEX 'LABEL_INDEX' ('label1' ASC, 'distance' ASC));
드라이브는 50 기가 바이트했고 공간이 부족. 시스템을 위해 예약 된 10 기가 바이트를 감안할 때, 나는 테이블이 32GB보다 큰 것을 요구하고 있다고 가정하고있다.
내 질문은 :
- 어떻게 InnoDB의 테이블이 실제로 차지 않는 많은 상대 입력 데이터의 크기?
- 수행 색인 테이블은 동일한 인덱싱되지 않은 테이블에 비해 더 많은 공간을 차지?
나는 단지 내 데이터베이스 서버에 대한 더 큰 드라이브를 주문해야할까요?
EDIT : 데이터 돼지를 "ibdata1"로 추적하여/var/lib/mysql에 저장했습니다. 이 파일은 30.3GB를 차지합니다.
이 우리를 보여 '표 [표] CREATE SHOW'문 .. MySQL이 가지고 많은 문자열 데이터 유형은 –
@RaymondNijland 내가 만들 문을 원래의 질문을 업데이트했다. – Tomas2015
실제로 그 공간을 모두 사용했는지 확인 했습니까? 그 공간을 모두 차지하는 파일을 본 적이 있습니까? 어떤 로그를 활성화 했습니까? 이진 로그? 일반 로그? 느린 로그? – fancyPants