조회 수 4 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form


  인덱스를 줄 경우 하드 용량을 더 차지 하기 때문에 속도를 떨어 뜨릴 수 있습니다.

  모든 칼럼에 인덱스를 주는 것은 절대 추천 하지 않습니다.
  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 오버헤드나 하드 오버헤드를 불러 일으 킵니다.
  적당히 사용하세요 ^^

   
http://www.mysql.com/doc/I/n/Indexes.html 
   
http://www.mysql.com/doc/M/u/Multiple-column_indexes.html 
   
http://www.mysql.com/doc/O/R/ORDER_BY_optimisation.html 


6-1. 바보 같은 인덱스의 사용 ? 

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

  $search% 이렇게 사용하세요. 그런디.. $search% 사용하면 제목 처음 단어 밖에 검색이 안됩니다.
  그렇다면 ? 다른 검색 방법은 ?


7.UDF의 사용 

  MySQL은 스토어드 프로시져 같은 개념이 존재 하지 않습니다.
  그대신 C 언어로 만든 함수를 사용할 수 있습니다.

  조금더 빠른 쿼리를 원한다면 UDF 를 사용해보세요 !

  UDF 함수 보기 
   
http://empyrean.lib.ndsu.nodak.edu/~nem/mysql/udf/ 

   
http://www.mysql.com/doc/A/d/Adding_functions.html 

  스토어드 프로시져가 먼뎅?
  스토어드 프로시져는 쉽게 말해 MS-SQL 함수 입니다.
  오라클에도 아마 있을검당..^^

  그러니까 게시판에서 내용을 넘길때나 불러 올때
  mysql 쿼리가 3-4 번 정도 이루어 집니다. 또는 ms- sql 쿼리가 이루어지죵..
  3-4 번 정도 쿼리가 되면..그만큼 디비 접속이 잦아 지기 때문에..
  속도가 느려 집니다.

  많게는 10번 정도의 insert into 와 update 가 이루어집니다.

  그래서 ms - sql 자체 내에 인서트 함수 나 목록 보기 함수를 만들어 놓습니다.
  글구 1번의 ms-sql 접속만 해서 인서트 함수를 불러서 처리하는 것입니다.

  그렇기 때문에 2-3 번의 쿼리가 절약 되서 빠르다는 것이죵..ㅋㅋㅋ
  또는 10번의 쿼리 할것을 MS-SQL 스토어드 프로시져를 1번만 호출 함으로 해서 디비 접속이 절약이 되죵..ㅌㅌ


  UDF 를 꼭 사용해야 하는가?

  안해도 됩니다.만... 사용하면 좋은점 많습니다. 새로운 함수를 추가 할 수 있으므로 ^^
  MS-SQL의 스토어드 프로시져 기능 비스므리 하게 사용할 수 도 있구요...

  UDF 나 MS-SQL 스토어드 프로시져의 사용법을 익히기 보다는 캐슁을 연구하세용 ^^
  동적인 PHP 를 정적인 HTML 로 만드는 방법을요...
  또는 UDF 에서 MS-SQL 스토어드 프로시져 처럼 사용이 가능 합니다. 그 부분을 연구하세요.

  www.zdnet.co.kr 이나 www.zdnet.com 가시면 기사 파일이 1000,29920,2892.html 파일 이란것을 보게 됩니다.
  어키 구현된것일까요? zdnet 게네 들은 강좌를 원래 부터 HTML 로 만들어서 올리는 것일까용??
  HTML 로 만드는 부분도 많이 생각 해야 합니다. 강좌가 1만개 라면, 1만개의 파일이 생성 됩니다.
  zdnet 의 경우는 조회수가 10만-20만을 넘는 초대형 사이트 이기 때문에 HTML 로 만드는 것이 퍼포먼스가 좋습니다.

  UDF 배워 두면..남주지 않습니다. 


8.조인보다는 쿼리를 나누어라! 

  조인(Join)하는 것보다 쿼리를 2개로 나누는 것이 속도가 빠릅니다.
  조인을 생각 하기 이전에 쿼리를 나누는 것을 생각 하세요 ^^

  어쩔 수 없는 경우는 당근 조인 해야죠.

  글고 서브쿼리는 아직 지원 안됩니다.
  Ms-SQL이나 오라클에서 서브쿼리 보다는 서브쿼리를 하지 않는 방향의 데이터 정규화를 하세요 ^^

  조인 보다 서브쿼리가 느리다.
  서브 쿼리 보다는 조인을 사용하세요 ^^



9.full text index와 search 

  3.23.23 부터 mysql 에서는 full text index 를 지원 합니다.  자세한 사항은 아래 ! 

   
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Fulltext_Search 
   
http://www.mysql.com/doc/F/u/Fulltext_Fine-tuning.html 


10. SELECT * FROM sometable 

  SELECT * FROM sometable 에서 * 모든을 사용하는 것은 무식한 방법 입니다.
  모든 칼럼을 불러오는 경우는 드물거든요.

  SELECT code,tadate,see FROM sometable

  사용할 것만 불러 오세요 ^^


11.데이터베이스 정규화 

  테이블을 아무렇게나 만들면 안됩니다.
  데이터베이스 정규화 원칙에 의거, 테이블을 나눌것은 나누고 만드시는 것이 좋습니다.
  제1 정규화, 제2 정규화 정도는 사용하셔야 합니다.

  게시판을 만들때 아직도 테이블 1개에 만드시나요? 
  온라인 폴 만들때 , 테이블 1개에 만드시나요?



12.REPLACE INTO문 사용하기 

  REPLACE INTO albums VALUES (6, "tood.net")   
  insert 문대신에 replace 문을 사용해보세요.
  메뉴얼 보시고 연구하세요 ^^

  주키일 경우 사용하시면 됩니다.



13. explain 사용하기 

  explain 를 사용하여 테이블의 키 값이 얼마나 잘 활용 되는지 알 수 있습니다.
  EXPLAIN SELECT, SHOW VARIABLES, SHOW STATUS, SHOW PROCESSLIST 

   
http://www.mysql.com/doc/E/X/EXPLAIN.html 


17.BLOB과 TEXT는 분리하라

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

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


참고: 게시판의 특성  

  일반 게시판들 보세요. 여기 질문 게시판 만 봐도 알 수 있구요.

  읽기(select) 가 무자게 많습니다. 쓰기(insert into) 보다 30-40 배 정도 많죠.
  하룻동안 올라온 글이 30 개 라면, 하룻동안 글읽기 조회수 총 합은 최소 100 에서 900 까지 갑니다.
  물론 더 엄청날 수 있구요.

  그렇기 때문에 게시판 목록 보기와 글읽기는 HTML 파일로 만들어 놓는 것이 좋습니다.
  또는 MySQL 에서 튜닝 시에 insert 보다는 select 가 빨리 되도록 튜닝 하는 것이 좋구요 ^^


  [참고사이트]
   
http://www.mysql.com/documentation/mysql/bychapter/manual_Table_types.html#SEC457 
   
http://www.mysql.com/documentation/mysql/bychapter/manual_Reference.html#Fulltext_Search  

  from:
   
http://www.javasun.net/board/Bread.jsp?CMD=400000&lnum=19&linenum=15&maxnum=0&keykind=null&keyword=&total=0&NCNT=1&ACMD=10&BCODE=001723

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
42 생활무전기(FRS) 주파수 대역 file uglyduck 2019.03.19 56
41 스케치북 스케치북, 갤러리 제목에 카테고리 추가하기. uglyduck 2019.03.17 549
40 mysql 데이터베이스 오류복구 & 최적화 mysqlcheck uglyduck 2019.03.17 5057
39 php.ini 업로드 용량 설정 uglyduck 2019.03.17 5
38 동영상/지도 반응형으로 만들기 uglyduck 2019.03.17 2
37 개인정보취급방침 만드는 방법 uglyduck 2019.03.17 7
36 centos7 버전에서 한글 깨짐 문제 uglyduck 2019.03.17 1
» 초보도 알아야 할 MySQL 튜닝 18 가지 uglyduck 2019.03.17 4
34 스케치북 스킨 사용시 가끔씩 아주 느려지는 문제 해결팁 uglyduck 2019.03.17 5
33 내 사이트 SEO 점수 알아보기 uglyduck 2019.03.17 6
32 XE SEO모듈 글 작성자 정보 추가하기 uglyduck 2019.03.17 0
31 디피 헬만 키(Diffie-Hellman Key)를 2048비트로 바꾸기 uglyduck 2019.03.17 4
30 SSL 도입으로 http -> https 변환시에 주소 리다이렉트 시키기 uglyduck 2019.03.17 4
29 에디터에 기본양식 넣기 uglyduck 2019.03.17 0
28 XE→ Wordpress DB 마이그레이션 uglyduck 2019.03.17 1
27 Syntax Highlighter 설치 uglyduck 2019.03.17 2
26 비회원 글쓰기 할때 이메일주소, 홈페이지 삭제 방법 uglyduck 2019.03.17 2
25 서버에 파일이 없을경우 XE 에러메세지 uglyduck 2019.03.17 0
24 IIS설정이 안되였을 경우의 XE 에러메세지 uglyduck 2019.03.17 0
23 XE 호스트 이전 방법 uglyduck 2019.03.17 2
Board Pagination Prev 1 2 3 Next
/ 3
CLOSE
서버에 요청 중입니다. 잠시만 기다려 주십시오...