​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
회사에서 처음보는 차... ㅎㄷㄷ
도라지차 ㅋㅋㅋㅋㅋ
도라지도 안좋아하는데 차라 ㅋㅋㅋㅋ
한번 먹어봤는데 난 그닥 ㅋㅋㅋㅋ
살 안찌는건 내입에 별로 ㅠㅠ


​​이건 저번에​ 낭군이 준 기프티콘인데 이제야 생각나서 점심 먹고 바꿔옴​
사무실에서 바로 먹음 ㅠㅠ
이러니 살이 안찔리가 ㅋㅋㅋㅋㅋㅋㅋㅋ

'Story > Diary' 카테고리의 다른 글

흔한 토요일 풍경~~  (0) 2015.06.27
역삼의 점심  (0) 2015.06.25
아침부터 뻥튀기  (0) 2015.06.22
이놈에 메르스  (0) 2015.06.07
두번째 출근  (0) 2015.06.04

테이블 설계 시 유의 사항

 

1. 반드시 Primary Key를 정의하고 최대한 작은 데이터 타입을 선정한다.

로그 성 테이블에도기본적으로 PK 생성을 원칙으로 함

InnoDB에서 PK는인덱스와 밀접한 관계를 가지므로 최대한 작은 데이터 타입을 가지도록 유지

 

2. 테이블 Primary Key는 auto_increment를 사용한다.

InnoDB에서는 기본키 순서로 데이터가 저장되므로, Random PK 저장 시 불필요한 DISK I/O가 발생 가능

InnoDB의 PK는절대 갱신되지 않도록 유지

(갱신 시 갱신된 행이후 데이터를 하나씩 새 위치로 옮겨야 함)

 

3. 데이터 타입은 최대한 작게 설계한다.

시간정보는MySQL데이터 타입 date/datetime/timestamp 활용

IP는INET_ATON(‘IP’), INET_NTOA(int) 함수를 활용

정수 타입으로 저장가능한 문자열 패턴은 최대한 정수 타입으로 저장

 

4. 테이블 내 모든 필드에 NOT NULL 속성을 추가한다.

NULL을 유지를 위한추가 비용 발생

(NULL 허용 칼럼을인덱싱 할 때 항목마다 한 바이트 씩 더 소요)

 

5. Partitioning을 적절하게 고려하여 데이터를 물리적으로 구분한다.

데이터 및 인덱스파일이 커질수록 성능이 저하되므로Partitioning 유도

PK 존재 시 PK내부에 반드시 Partitioning 조건이 포함되어야 함

 

인덱스 설계 시 유의 사항

 

1. 인덱스 개수를 최소화 한다.

현재 인덱스로Range Scan이 가능한지 여부를 사전에 체크

인덱스도 서버 자원을소모하는 자료구조이므로 성능에 영향을 줌

 

2. 인덱스 칼럼은 분포도를 고려하여 선정한다.

인덱스 칼럼 데이터의중복이 줄어들수록 인덱스는 최대의 효과를 가짐

하단 쿼리 결과 값이 1에 가까울수록(0.9이상 권고) 인덱스 컬럼으로 적합함

 

SELECT count(distinctINDEX_COLUMN)/count(*)

FROM TABLE;

 

3. 커버링 인덱스(Covering Index)를 활용한다.

쿼리 조건이 인덱스안에 포함된 경우 인덱스에서만 연산 유도

인덱스는 일반적으로 행전체보다 작으므로 불필요한 Disk I/O 회피 가능

MySQL에서 커버링 인덱스로 쿼리 성능을 높여보자!!  참고

 

4. 스토리지 엔진 별 INDEX 특성을 정확히 인지한다.

InnoDB에서데이터는 PK 순서로 저장되고, 인덱스는 PK를 Value로 가짐

MyISAM은 PK와일반 인덱스의 구조는 동일하나, Prefix 압축 인덱스를 사용

(MyISAM 엔진에서ORDER BY 시 DESC는 가급적 지양)

 

5. 문자열을 인덱싱 시 Prefix 인덱스 활용한다.

긴 문자열 경우Prefix 인덱스(앞 자리 몇 글자만 인덱싱)를 적용

 

CREATE INDEX IDX01 ON TAB1(COL(4), COL(4))

 

Prifix Size는앞 글자 분포도에 따라 적절하게 설정

(하단 결과가 1에가까울 수록 최적의 성능 유지, 0.9이상 권고)

 

SELECT count(distinctLEFT(INDEX_COLUMN,3))/count(*)

FROM TABLE;

 

6. CRC32함수 및 Trigger를 활용하여 인덱스 생성한다.

URL/Email같이문자 길이기 긴 경우 유용

INSERT/UPDATE발생 시 Trigger로 CRC32 함수 실행 결과 값을 인덱싱

CRC32 결과값을저장할 칼럼 추가 및 인덱스 생성

 

alter table user_tbl add email_crc intunsigned not null;

create index idx01_email_crc on user_tbl (email_crc);

 

InsertTrigger 생성

 

create trigger trg_user_tbl_insert

beforeinsert on user_tbl

for each row

begin

setnew.email_crc = crc32(lower(trim(new.email)));

end$$

 

UpdateTrigger 생성

 

create trigger trg_user_tbl_update

beforeupdate on user_tbl

for each row

begin

if old.email<>new.email then

setnew.email_crc = crc32(lower(trim(new.email)));

end if;

end$$

 

검색 쿼리

 

select *

from user_tbl

where email_crc = crc32(lower(trim('mail@domain.com')))

and email='mail@domain.com'

 

CRC32 결과가중복되어도, email값을 직접 비교하는 부분에서 중복이 제거됩니다.

 

7. 중복 인덱스 생성 회피

MySQL은 동일한인덱스를 중복 생성해도 에러를 발생하지 않음

Primary Key로구성된 칼럼과 동일한 인덱스를 생성하지 않도록 주의

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

프로시저의 예  (0) 2011.01.26
MySQL DUMP 백업 및 복원  (0) 2010.09.20
load data  (0) 2010.07.19
mysql replication error  (0) 2010.06.28
LOAD XML Syntax [v5.5]  (0) 2010.04.07


아침 출근이 10시로 되면서 애들이 집에서 이거저거 먹고 어린이집에 가는데 작은방에 과자들을 시후가 알기 때문에 자꾸 달라고 한다.
내가 잘 안주니 은채 뻥튀기라도 내놓으라고 땡깡 ㅠㅠ
그 덕에 아침부터 은채도 호강한다. ㅋㅋㅋㅋ
알라뷰 뻥튀기~~

'Story > Diary' 카테고리의 다른 글

역삼의 점심  (0) 2015.06.25
살찌겄어 ㅠㅠ  (0) 2015.06.23
이놈에 메르스  (0) 2015.06.07
두번째 출근  (0) 2015.06.04
회사 첫출근  (0) 2015.06.01


은채는 시후만 있으면 졸졸 따라 다니면서 노는데 ㅋㅋㅋ
시후가 만지는 장난감만 만질려고 덤빈다.
그러면 가만히 있을 오빠님이 아니라 밀고 소리치고 난리 ㅋㅋㅋ
그러면 은채는 나를 쳐다보면서 서럽게 울고 매일 반복 ㅋㅋㅋㅋ
오늘은 시후가 낭군따라 시댁가서 은채랑 난 오랜만에 둘이 있다 ㅎㅎ


오늘 먹는거도 잘먹고 잘놀고 잘자고.
시후가 없으니 맘대로 활기치고 다니고 ㅋㅋㅋㅋ
다 만지거라~~ 니 오빠 오기 전에 ㅋㅋㅋㅋ

'Story > Eunchae' 카테고리의 다른 글

미아방지 지문 등록  (0) 2015.06.30
벌써 밥하는거야???  (0) 2015.06.24
은채 돌사진 촬영~~  (0) 2015.06.20
급성 후두염  (0) 2015.06.02
이유식 민들기~~  (0) 2015.05.26

+ Recent posts