RadarURL

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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

MyISAM은 빠릅니다.


InnoDB는 트랜잭션, 동시성 제어 등의 많은 기능이 지원됩니다.


 


그래서 MyISAM은 로그를 쌓는다던가 하는 단순 작업에 많이 쓰이고 보통 웹서비스에는 InnoDB가 많이 쓰입니다.


 


두 종류의 DB를 섞어서 사용하는 것도 가능하지만 백업하기가 좀 까다로워집니다. (두 DB의 백업 방법에 차이가 있어요)

-----------------------------

MyISAM은 속도가 빠르지만 트랜잭션을 지원하지 않습니다.

InnoDB는 속도가 느리지만 트랜잭션을 지원합니다


단순 댓글저장용도이고 성능이 중요하면 MyISAM 사용하시면 될거 같습니다.


용도에 따라서 다르게 설정하면 좋겠지만 성능이슈가 크지 않다면 InnoDB로 통일하는게 관리가 쉽지 않을까요?

----------------------------------


다른 분들께서 답변을 잘 달아주셨으니 저는 '게시판의 댓글'을 위해 사용하시려는 의도에 좀 더 집중해서 답변을 하겠습니다.


 


아시다시피 MyISAM의 경우 자료를 입력/수정/삭제할 경우 테이블 전체에 락이 걸립니다.


InnoDB는 위의 분들께서도 말씀하신 것처럼 트랜잭션을 지원하며 입력/수정/삭제에 대해 건건에 락이 걸립니다.


따라서 게시판의 동시 접속량이 얼마 정도인지 사이트에 따라 많은 차이가 있습니다만 입력/수정/삭제가 아주 빈번하게 일어나면서 동시에 조회가 많이 일어나는 자료에 대해서는 InnoDB를 사용하시는 것을 권장합니다.


 


그리고 마지막에 말씀하신 것은 다른 타입의 테이블들, 특히 MyISAM과 InnoDB테이블은 가급적 같이 사용하시지 않으시는 것이 좋습니다.


키 캐쉬 혹은 InnoDB Pool의 사용에 대한 기본적은 것이 틀린 것은 차지하고라도


만약 MyISAM 테이블 A와 InnoDB 테이블 B를 조인해서 사용하시는 경우,


MyISAM 테이블에 테이블 락이 걸리면 해당 SQL의 성능이 아주 안 좋아질 수 있습니다.


 


도움이 되었길 바라면서, 즐거운 일요일 맞이하세요~ ^0^/"

----------------------------------


일단, 위에 답변에 무수히 나오는 얘기처럼 가장 고려해야 할 부분은 lock 에 관련된 부분입니다.


 


update, delete 가 많은 시스템일 경우 innodb 를 ,


그렇지 않고 대부분이 insert 와 select 로 이루어진 경우는 myisam 을 많이 사용합니다.


 


이유는,


일단 myisam 의 경우 select 성능이 우수하지만 update 나 delete 가 일어날 경우 table lock 을 걸게 됩니다.


그럼 다른 세션에서 update 를 하게 될경우 wait time 이 생기게 되고 ,


이 부분에서 성능저하가 발생하게 됩니다.


 


myisam과 innodb 는 많은 사용자들이 한개의 database 에 혼용해서 사용하지만,


myisam 의 경우 트렌젝션의 개념이 없고, innodb 는 트렌젝션이 존재한다는점..


그리고  table lock 과 row level lock 의 차이 등을 고려했을때 database 단위로 통일된 storage engine 을 사용하시는 것이 좋겠습니다.


 


예를 한번 들어보겠습니다.


product(productid, productname, sum_account) : innodb


account(accountid, user, date) : myisam


 


product 는 판매 물품이 정의되어 있고, account 에는 실제 판매된 log 가 남는다고 가정하겠습니다.


물품이 판매되면 acoount 에 log 가 남는 동시에 prodcut.sum_account 를 증가시켜야 합니다.


 


account 에 해당 row 를 insert 하고, product 에 sum 값을 증가시킨 후 commit 이 일어나기 전에 에러상황이 연출된 경우 두 테이블의 무결성은 보장이 어려워 집니다. 롤백을 하는 경우도 마찬가지이지요.


 


한가지 더 문제는 myisam 의 tablelock 으로 인해 product 테이블 작업도 기다리게 되는 성능상의 문제도 생각해 볼 수 있습니다.


 


도움이 되셨길 바랍니다.


--------------------------------------------------


  • 먼저 나온게 MyISAM 타입이고 속도는 MyISAM 타입이 훨씬 빨랐는데
    이후에 InnoDB 타입이 나오면서
    트랜잭션, 외부키참조, 트리거 등 훌륭한 많은 기능이 추가되었다.
    이후에 패치하면서 속도가 향상되었는데
    지금은 MyISAM 타입과 거의 비슷한 속도라고 한다.
  • 일반적으로 MyISAM 타입은 트렌젝션을 지원하지 않는다.
    그래서 insert, update, delete 작업시 부가적인 작업을 하지 않는다.
    하지만 InnoDB타입은 트랜젝션을 지원한다.
  • 여러가지 상황에 따라 다르겠지만,
    일반적으로 MyISAM 타입은 insert, update할 때 빠르고, 
    InnoDB 타입는 검색시 빠르다고 한다.
    혼용시 서버 메모리 설정을 보다 잘 해야한다고 한다.

    출처 : http://k.daum.net/qna/view.html?qid=3yoyO
  • ?

    공부 게시판

    공부에 도움되는 글을 올려주세요.

    List of Articles
    번호 분류 제목 글쓴이 날짜 조회 수
    공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 928050
    546 경제 저축상품 고르는 방법 JaeSoo 2010.03.09 5140
    545 경제 행복한 가족경제학 JaeSoo 2010.03.09 6264
    544 경제 빛을 갚는 체계적인 방법 JaeSoo 2010.03.09 5859
    543 웹 프로그래밍 [제로보드XE] 글 쓸 때 자동으로 비밀 글 체크하기('비고수'님의 팁) JaeSoo 2010.02.24 7713
    542 기타 파인드라이브 스타일 3D(Style 3D) DMB, GPS 잭 file JaeSoo 2010.02.24 9972
    541 웹 프로그래밍 날씨 위젯 추천 - 웨더 채널 JaeSoo 2010.02.24 7694
    540 윈도우즈 Windows Server Clustering - MSCS JaeSoo 2010.02.22 6398
    539 윈도우즈 Generic Host Process for Win32 Services 에러 JaeSoo 2010.02.16 6227
    538 유닉스/리눅스 리눅스 파일 시스템에서 숨김 속성 적용 방법 JaeSoo 2010.02.08 11481
    537 하드웨어 레이드에있어서의 Stripe size와 다시쓰기캐쉬적용의 비교 JaeSoo 2010.02.07 7962
    536 네트워크 윈도우는 티밍, 리눅스는 본딩, AIX에서는 이더채널 또는 채널링 JaeSoo 2010.02.05 10347
    535 기타 자녀의 IQ를 높여주는 11가지 방법 JaeSoo 2010.02.05 4977
    534 네트워크 PC 1대에서 유선,무선 네트워크 동시 사용하기 JaeSoo 2010.01.31 8801
    533 네트워크 윈도우에서 default gateway 값 변경 JaeSoo 2010.01.31 10557
    532 네트워크 윈도우에서 2개의 NIC에 서로 다른 route를 설정하는 방법 JaeSoo 2010.01.31 8961
    531 네트워크 LACP(Link Aggregation Control Protocol) JaeSoo 2010.01.27 10031
    530 윈도우즈 최대 절전 모드(hibernation) vs. 하이브리드(hybrid) 절전 모드 JaeSoo 2010.01.25 8640
    529 윈도우즈 Windows 7, Vista Hybrid Sleep(하이브리드 절전모드) 적용하기 JaeSoo 2010.01.25 6964
    » 데이터베이스 MySQL에서 테이블을 생성할때 MyISAM과 InnoDB 어느것을 선택하나요? JaeSoo 2010.01.25 7626
    527 네트워크 윈도우 라우팅 테이블 관리하기 1 JaeSoo 2010.01.25 9337
    Board Pagination Prev 1 ... 92 93 94 95 96 97 98 99 100 101 ... 124 Next
    / 124


    즐겨찾기 (가족)

    JAESOO's HOMEPAGE


    YOUNGAE's HOMEPAGE


    장여은 홈페이지


    장여희 홈페이지


    장여원 홈페이지


    즐겨찾기 (업무)

    알리카페 홀릭

    숭실대 컴퓨터 통신연구실 (서창진)

    말레이시아 KL Sentral 한국인 GuestHouse


    즐겨찾기 (취미)

    어드민아이디

    유에코 사랑회

    아스가르드 좋은사람/나쁜사람

    JServer.kr

    제이서버 메타블로그

    재수 티스토리


    즐겨찾기 (강의, 커뮤니티)

    재수 강의 홈페이지


    한소리


    VTMODE.COM


    숭실대 인공지능학과


    숭실대 통신연구실


    베너