source

MyIsam 스토리지 엔진에만 적용되는 가장 일반적이고 중요한 SQL 명령어는 무엇입니까?

nicesource 2023. 1. 19. 07:03
반응형

MyIsam 스토리지 엔진에만 적용되는 가장 일반적이고 중요한 SQL 명령어는 무엇입니까?

오래된 MyISAM 기반 MySQL 배치를 사용하여 오래된 레거시 시스템을 이동하는 것은 InnoDB 기반 MySQL 또는 MariaDB 배치로 쉽게 대체할 수 없다는 것이 최근에 논의된 내용 중 하나입니다.그 이유는 MyISAM만의 SQL 명령어가 너무 많기 때문입니다.아직 코드를 보지 못했기 때문에 SQL 명령어가 어디에 있는지 궁금합니다.

테이블 잠금과 관련된 다음과 같은 몇 가지 항목만 알고 있습니다.아직 이론상으로는 InnoDB와 함께 작동하지만 MyISAM에 더 적합합니다.MERGE,그리고.MEMORY테이블 잠금을 지원하는 스토리지 엔진.

LOCK TABLES
UNLOCK TABLES

만약 더 있다면, 아니면 수집품을 가르쳐 주세요.대단히 감사합니다.

--편집--

다른 건 다 이 줄 아래에 적어 놓을게요.

MATCH (http://dev.mysql.com/doc/refman/5.5/en//fulltext-search.html)

넌 할 수 있다.LOCK TABLESInnoDB 테이블도 마찬가지이므로 MyISAM 고유의 것이 아닙니다.InnoDB 테이블을 잠글 필요는 없지만.트랜잭션, MVCC, 그리고SELECT...FOR UPDATE.

MyISAM에만 관련된 설정 변수 및 상태 변수에는 다음과 같은 여러 가지가 있습니다.key_buffer_size캐싱 인덱스 전용 메모리입니다.하지만 이건 명령어가 아닙니다.

MyISAM 테이블의 몇 가지 기능은 InnoDB에서 지원되지 않습니다.하나는 그룹화된 자동 증가 기본 키입니다.

CREATE TABLE foo (
  group_id INT, 
  position INT AUTO_INCREMENT,
  PRIMARY KEY (group_id, position)
);

위의 표는 증분합니다.position행을 삽입할 때 각 개별 값에 대해 1에서 다시 시작합니다.group_id이것은 MyISAM에서만 동작합니다.

CREATE FULLTEXT INDEX, 그 때문에,MATCH()...AGAINST()쿼리 술어는 현재 MyISAM에서만 지원됩니다.그러나 이것들은 MySQL 5.6의 InnoDB용으로 구현되고 있습니다.

CREATE SPATIAL INDEX는 MyISAM에서만 지원됩니다.

CHECKSUM TABLE는 MyISAM 테이블에만 적용됩니다.

OPTIMIZE TABLE는 MyISAM에 고유하지만 InnoDB 테이블에 대해 이 명령을 실행하면 자동으로 재생성 + 분석 조작으로 변환됩니다.

CREATE TABLEMyISAM에서만 지원되는 옵션:

  • AVG_ROW_LENGH=nnn
  • DATA_Directory=패스
  • INDEX_Directory=패스
  • 지연_KEY_WRITE=1
  • PACK_KEYS=1
  • ROW_FORMAT=프로세서

MERGE 스토리지 엔진은 MyISAM 테이블만 병합할 수 있습니다.

MyISAM 테이블에 적용할 때 가장 좋아하는 명령어는 다음과 같습니다. :- )

ALTER TABLE tablename ENGINE=InnoDB;

저는 "임시" 테이블을 만들고, 삽입/갱신 및 삭제하며, 오래된 테이블을 삭제하고, 새 테이블의 이름을 이전 이름으로 바꾸는 것이 좋습니다.

그렇지 않으면 마지막 단계에서 할 수 있습니다.

TRUNCATE TABLE x;
INSERT INTO x SELECT * from temp_x;

언급URL : https://stackoverflow.com/questions/13413226/most-common-and-important-sql-commands-that-solely-apply-to-myisam-storage-engin

반응형