8.4.2.2 문자 및 문자열 최적화
문자 및 문자열 컬럼의 경우 다음 지침을 따르십시오.
언어 별 조합 기능이 필요하지 않은 경우에는 비교 및 정렬 작업을 빠르게하기 위해 이진 데이터 정렬을 사용합니다. 특정 쿼리에서 이진 데이터 정렬을 사용하려면 BINARY 연산자를 사용할 수 있습니다.
다양한 컬럼의 값을 비교하는 경우, 가능하면 그 컬럼을 같은 문자 셋과 콜레 션 선언하고 쿼리 실행중인 문자열 변환하지 마십시오.
크기가 8K 바이트 미만의 컬럼 값은
BLOB
대신 바이너리VARCHAR
를 사용합니다.GROUP BY
와ORDER BY
절은 임시 테이블을 생성 할 수 있으며, 이러한 임시 테이블에서 원본 테이블에BLOB
컬럼이 포함되지 않는 경우에,MEMORY
스토리지 엔진을 사용할 수 있습니다.테이블에 이름이나 주소 등의 문자열 컬럼이 포함되지만, 많은 쿼리에서 그 컬럼을 얻을 수없는 경우 문자열 컬럼을 별도의 테이블로 분할하고 필요한 경우 외부 키에 결합 쿼리를 사용 하는 것을 고려합니다. MySQL에서 행에서 어떤 값을 취득하는 경우 그 행 (및 아마 다른 인접한 행)의 모든 컬럼을 포함하는 데이터 블록을 읽습니다. 가장 자주 사용되는 컬럼 만 각 행을 작게함으로써보다 많은 행을 각 데이터 블록에 저장할 수 있습니다. 그런 컴팩트 한 테이블은 일반적인 쿼리의 디스크 I / O 및 메모리 사용량을 줄일 수 있습니다.
InnoDB
테이블에서 기본 키로 임의로 생성 된 값을 사용하는 경우 가능하면 현재 날짜와 시간 등의 내림차순 값에 접두어를 지정합니다. 연속 된 기본 값이 서로 물리적으로 가까이에 저장되어 있으면,InnoDB
는 그들을 빨리 삽입하고 얻을 수 있습니다.수치 열 것이 일반적 동등한 문자열 컬럼에서 권장되는 이유에 대해서는 섹션 8.4.2.1 "수치 데이터의 최적화" 를 참조하십시오.