MySQL의 성능 최적화 데이터 유형 및 인스턴스 --- 2

문자 세트를 선택

직접 그래서 우리는 가능한 한 데이터를 줄일 수있는 적절한 문자 세트를 사용하여 크게 달라질 공간의 양을 나타내는 다른 문자 세트를 사용하여 동일한 콘텐츠 MySQL의 저장 데이터를 인코딩하는 문자 세트를 결정 이에 IO 동작의 수를 감소 금액.
이 저장 공간을 많이 절약 할 수 있기 때문에 1. 순수 라틴 문자가 표시 될 수 내용, 필요, 라틴 이외의 다른 문자 인코딩을 선택합니다.
2. 당신은 우리가 결정할 수있는 여러 언어로 저장할 필요가없는 경우, 다른 유니 코드 또는 UTF8 문자 유형을 사용해야 할 필요가 없다,이 시간 낭비 저장 공간이 많이 발생했습니다.
3.MySQL 우리가 멀티 바이트 데이터에 저장된 대용량 데이터베이스 필요할 때, 상이한 데이터 유형함으로써 줄일 다른 테이블에서 다른 필드에 저장된 데이터의 양을 감소 크게하는데 사용될 수 데이터 타입 필드에 정확할 수 IO 작업의 수와 캐시의 히트 율을 향상시킬 수 있습니다.

기본 키를 선택

대리 기본 키의 사용을 권장하지 비즈니스 부부와 함께, 쉽게 유지하기 위해
대리 기본 키 : 숫자의 비즈니스 관련, 의미 순서를
자연의 기본 키 : 자연의 사물의 속성을 고유하게 식별
, 바람직하게는 모든 테이블을 테이블의 대부분을, 보편적 인 키 전략은 기록 할 소스 코드를 요구의 수를 줄일 수, 시스템은 총 소유 비용 (TCO)을 줄이기 위해

데이터 형식 최적화

1. 작은 데이터는 좋은 데이터
가 적은 디스크, 메모리, CPU 캐시를 차지하기 때문에 작은 데이터 유형은 일반적으로 더 빨리, 정확하게 데이터를 저장할 수있는 가장 작은 데이터 형식을 사용하려고 할 때, 그리고 처리 적은 CPU 사이클을 요구한다
2. 않도록 널이
인덱스 및 통계 값 비교 더 복잡한 경우되도록 SQL 널 열을 행하는 최적화 될 수
3. 더 적절한 데이터 타입
1, 정수 연산은 문자 세트와 대조하기 때문에, 문자의 비용보다 낮 규칙은 정수보다 더 복잡한 문자 비교입니다
mysql을 자체 내장 유형을 사용하여 2. 이러한는 문자열의 일시 저장하는 데 사용될 수
있도록 할 수 3 정수로 저장된 IP 주소 INET_ATON () 함수로 변환 INET_NTOA 두 표현을 간. 장점은 저장 공간이 감소되고, 단점은 덜 읽을

SELECT INET_ATON('192.168.23.4');
SELECT INET_NTOA(3232241412);

4. TINYINT, SMALLINT, MEDIUMINT 상기 INT, BIGINT는 8,16,24,32,64 비트의 메모리 공간을 사용 하였다. 요구는 최소 데이터 유형을 이용하게하기 위해
5 문자> VARCHAR> 텍스트 : 질의 속도에 따라
상기 최대 길이는 255 개 문자 ID 번호에 사용하기에 적합한, 전화 번호가 문자 고정 길이, 공간 등이 차지하는 각 데이터 바이트, 즉 길이 다른 고정 길이 스트링
변수도 VARCHAR는 최대 길이가 제공 될 수있는 최대 크기의 가변 길이 속성에 사용하기에 적합한 65,535 바이트로
설정되어 있지 않은 텍스트 길이를 알지 못하는 경우 해당 텍스트 속성의 최대 길이,
6.. BLOBTEXT 별도의 오브젝트로서 처리 값. 대용량 데이터를 저장하기 위해 설계된 문자열 유형은 각각 이진 및 문자 저장됩니다.
열거 클래스
때때로 대신 종류가 매우 컴팩트에 저장되어, MySQL의 ENUM 통상 열거 클래스 문자열 형 사용될 수 있으며, 각각의 뜻 내부 데이터 값에서, MySQL은 하나 또는 두 바이트로 압축 될 "숫자 문자열"의 조회 테이블 매핑 관계 - 목록에서 위치 값을 저장하는 정수 및 .FRM 파일 테이블에 저장됩니다

create table enum_test(e enum('fish','apple','dog') not null);--创建表字段为枚举类型
insert into enum_test(e) values('fish'),('dog'),('apple');--插入数据
select e+0 from enum_test;--查询
select * from enum_test where e = 0;--查询
select * from enum_test where e = 'fish';--查询

8.datetime和타임 스탬프
날짜

8 바이트
에 관계없이 시간대의 잘못된 날짜의 데이터베이스 기본 시간대 설정
밀리 초 단위로 저장은
시간의 넓은 범위 저장할 수
날짜 문자열 유형을 저장하지 않는, 넓은 공간, 유형의 날짜의 기능 상실의 용이성

타임 스탬프

4 바이트
시간 : 1970-01-01 2038년 1월 19일에
제 정확한
정수 저장
데이터베이스 시간대 의존 세트
자동 컬럼의 타임 스탬프 값을 갱신

데이트

바이트 수의 비는 문자열 유형의 3 바이트 날짜, INT 적은 저장, 사용 날짜가 차지하는
일 유형을 사용하여도 일 함수 사이의 날짜와 시간을 이용하여 계산 될 수있다
1000-01-를 저장 날짜 형식 9999-12-31 01 사이의 날짜

패러다임 및 카운터 패러다임

당신은 엄격 패러다임 및 카운터 패러다임, 실제 사업을 기반으로 실제 분석을 준수 할 필요가 없습니다. 필요한 중복 필드는 관련 테이블을 많이 줄일 수 있습니다

패러다임

장점 :

패러다임의 모델 업데이트는 일반적으로 빠른 트랜스보다
더 나은 데이터 표준화, 거의 또는 데이터없이 중복이 때
, 빠른 동작 데이터가 메모리에 상대적으로 작은 배치 할 수있다 정상화
: 단점을
일반적으로 연결되어야

안티 패러다임

장점 :

피하기 협회 같은 테이블의 모든 데이터는
효과적인 인덱스 디자인 할 수 있습니다
단점 :
더 중복을 테이블에서 삭제 된 데이터를 테이블에 유용한 정보가 손실이 발생할 때

선택의 스토리지 엔진

저장소 엔진

적절한 분할

대형 또는 대형 타입 VARCHAR, 표 주요 필드에 액세스하지 않는 경우,이 다른 별도의 표에 고장에 대한 액세스와 같은 큰 필드 텍스트 입력 필드, 저장 공간은 자주 사용되는 데이터가 차지하는 감소시킨다.
이것은 증가 저장 될 수있는 각 데이터 블록의 데이터 부분의 개수는 상기 IO의 수는 물리적, 캐시 히트 율이 향상 될 수있다 메모리 줄일 수있다.

추천

출처www.cnblogs.com/farmersun/p/12483816.html