728x90
반응형
MyISAM
** 개요
-
5.1 버전 이하 default storage engine 이다.
-
full-text 인덱싱, 압축, spatial functions 등 다양한 기능들을 제공 한다.
-
Transaction 이나 row-level lock 은 제공 안 한다.
-
가장 큰 취약점은 충돌에서 안전하지 않다는 점이다.(The fact it isn't even remotely crash-safe)
** 왜 충돌에서 안전하지도 않고 non-transaction 인 MyISAM을 계속해서 사용 하는 것일까??
(저자 : 모든 부분에서 나쁘지는 않다. Non-trasaction, non-crash-safe를 한다면... )
-
만약 read-only 혹은 데이터가 크지 않거나, 복구에 마음이 아프지 않을려면 묻지 말고 이거 사용해라.(저자 : 하지만 제발 InnoDB 사용해라. (But Please, Don't use it. Use InnoDB instead) zzz )
** Storage
-
각 table 마다 data file 과 index file 두개의 파일을 저장한다.(.MYD, .MYI 확장자)
-
table 은 dynamic or static rows를 포함할 수 있다.(첨에 MySQL 개발자들이 table 정의에 기초로한 포맷을 사용하기로 해서 그렇다능)
-
5.0 버전부터 6-byte 포인터를 사용해 256 TB 까지 사용할 수 있으며, 8-byte까지 키울 수 있다.(전 버전은 4-byte 포인터로 4 GB 까지 사용)포인터 사이즈 변경을 위해서, MAX_ROWS 와 AVG_ROW_LENGTH 를 위해 Alter table 을 해야 한다.(인덱스는 다시 쓰여질 것이며, 시간이 오래 걸릴 수 있다.)
** Featrues
Locking and Concurrency(잠금과 동시병행)
-
row 가 아니라 table 전체를 Lock 건다.
-
Reader는 읽을 table 전체를 read lock 얻으며,Writer는 write lock 얻는다.
-
하지만, 너는 Select Query가 진행중이라 해도 Insert 가 가능하다.
Repair(복구)
-
Table 복구에 대한 수동 메뉴얼과 자동 기능을 제공한다.(Transaction 과 Crash recovery 와 혼돈하지 마라)
-
오래 걸리는 Table 복구 후, 일부 데이터가 없어진 것을 발견할 것이다.ㅋㅋㅋㅋ그렇다면? CHECK TABLE [table] + REPAIR TABLE [table] 명령어로 에러 확인 및 복구 해라
Index features(인덱스 특징)
-
Table에서 첫 BLOB and TEXT 컬럼의 500 캐릭터 인덱싱할 수 있다. ?? 먼소리야?
-
복잡한 검색과 독립적인 단어들에 대해 full-text 인덱싱을 제공한다.
Compressed tables
-
어떤 테이블은 생긴 이후로 영원히 변경이 없다면? 이거슨 MyISAM 이다.
-
myisampack 유틸리티로 압축할 수 있지만 후에 수정이 불가하다.(압축 풀고 수정 하고 압축하고 뭔 짓)압축 한다면, Disk 에서 적은 용량과 빠른 성능을 제공 한다.(최근의 하드웨어와 프로그램을 덕분에 한 row에 대해서 수정하는 것이 과부하가 오지는 않을 것)
** Performance
-
Compact 한 데이터 저장과 간단한 디자인을 통한 적은 과부하 덕분에 특정 방식에서는 꽤 좋은 성능을 보여 줄 수 있다.
-
It does have some severe scalability limitations, including mutexes on key caches.(MariaDB offers a segmented key cache that avoids this problem)(먼소리야?)
-
성능에서 공통적인 문제점은 table lock.
728x90
반응형
'Database > MySQL' 카테고리의 다른 글
데이터 베이스 설계 프로세스 (0) | 2019.10.22 |
---|---|
Isolation level (트랜잭션 고립(격리) 수준) (0) | 2019.10.22 |
MySQL's Storage Engines - InnoDB Engine (0) | 2019.10.22 |
프로시저 언제 사용해야 하나? (0) | 2019.10.22 |
트랜잭션 너는 누구니? (0) | 2019.10.22 |