출처: http://blog.arzz.com/190

         https://gs.saro.me/?c=240&m=2



HEAP 테이블이 가장 빠르다
일반적으로 가장 많이 쓰이는 테이블 타입은 MyISAM 타입 입니다.
MyISAM 타입은 무자게 빠르며, 대용량에도 강합니다. 그러나 트랜잭션은 지원되지 않습니다.
이노디비(InnoDB) 는 트랜잭션이 지원 됩니다. 쇼핑몰에서는 반드시 사용해야 합니다 ^^

HEAP 테이블 타입은 가장 빠르며, 단점은 메모리에 있기 때문에, MySQL에 중지 될 경우 모두 날아 갑니다.

검색을 하고 재검색을 다시 하는 경우, 임시 검색 테이블을 만들어 놓는 것도 좋은 방법입니다.
mysql>CREATE TABLE email_addresses TYPE=HEAP (
->email char(55) NOT NULL,
->name char(30) NOT NULL,
->PRIMARY KEY(email) );


int,smallint,tinyint 데이터형
int 는 굉장히 큰수 입니다. 4바이트를 차지 하구요.
tinyint 는 몇백 까지만 됩니다. 1바이트 구요.

쓸데 없이 int 를 사용하지 마세용 !!
4바이트와 1바이트는 4배 차이 입니다.조그만것 1개 1개가 모여 서버 부하를 일으 킵니다.!!

데이터 량이 얼마만큼 들어가는지 체크 하고 데이터형을 선택 하세요 ^^
만약 쓸데없는 데이터 형이다 싶으면 alter table 로 데이터 형을 바꾸세요 !


인덱스의 사용
인덱스는 반드시 필요한 곳에만 넣으세요 !
인덱스를 줄 경우 하드 용량을 더 차지 하기 때문에 속도를 떨어 뜨릴 수 있습니다.

모든 칼럼에 인덱스를 주는 것은 절대 추천 하지 않습니다.
1개의 테이블에 주키외에 2-3 개 이상의 인덱스는 주지 마세요!

주키는 당근 인덱스 입니다. ^^

CREATE TABLE albums (
id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(80)NOT NULL,

INDEX title_idx (title)
);

☞Alter Table 로 인덱스 추가
ALTER TABLE albums ADD INDEX title_idx (title)

결합 인덱스의 경우 너무 많은 인덱스를 사용할 경우 CPU 오버헤드나 하드 오버헤드를 불러 일으 킵니다.
적당히 사용하세요 ^^


인덱스는 %$search% 가 먹지 않습니다.
그런디 게시판 제목(Subject) 에 인덱스 걸어 놓고 , 검색을 %$search% 이렇게 하면 될까요?
인덱스 거나 안거나 똑같습니다. !!


기타
BLOB과 TEXT 칼럼은 테이블을 분리 하는 것이 좋다. 다른 칼럼의 내용 보다 크기 때문이다 !

OPTIMIZE TABLE 명령을 자주 사용해라 !
Not null 로 지정 하는 것이 빠르다.
varchar 보다 char 이 훨빠르다.


'Programming > Database' 카테고리의 다른 글

MySQL error code  (1) 2012.08.28
[펌] ERWin에서 테이블리스트 작성하는 방법  (0) 2012.05.08
MySQL의 DB 백업방법 (HeidiSQL 사용)  (0) 2012.03.17
Posted by 세모아
,