세 가지 MySQL 초보 입문 면접 문제,자유 로 운 길 로

1.MySQL 자 물 쇠 를 아 는 지 말 해 봐
데이터 베이스 에 있어 읽 기와 쓰 기 는 매우 빈번 하 죠?병발 량 이 올 때 읽 기와 쓰기 작업 을 할 때 데이터 의 일치 하지 않 을 수 있 습 니 다.이 럴 때 방문 순 서 를 확보 하 는 메커니즘 이 필요 하기 때문에 자 물 쇠 는 어느 정도 일치 성 을 보호 할 수 있 습 니 다.
우선 우 리 는 자물쇠 의 입도 에 따라 나 눌 수 있다.
1.표 급 잠 금:잠 겨 있 는 전체 시계 입 니 다.현재 업무 가 방문 할 때 현재 업무 가 잠 금 을 풀 때 까지 기 다 려 야 시 계 를 조작 할 수 있 습 니 다.
특징:시계 자 물 쇠 는 비용 이 적 고 자 물 쇠 를 빨리 잠 근 다음 에 자물쇠 의 입도 가 가장 크 며 자물쇠 가 잠 겨 있 는 현상 이 나타 나 지 않 으 며 자 물 쇠 를 보 내 는 충돌 확률 이 가장 높 고 병발 도가 가장 낮다.
2.줄 잠 금:잠 금 은 한 줄 또는 여러 줄 의 기록 을 잠 그 는 것 입 니 다.현재 트 랜 잭 션 에 접근 할 때 잠 긴 필드 만 접근 할 수 없고 다른 정상 적 인 접근 이 가능 합 니 다.
특징:행 자 물 쇠 는 비용 이 많이 들 고 자 물 쇠 를 가득 채 운 다음 에 자물쇠 의 입도 가 가장 적 으 며 자물쇠 가 닫 히 는 현상 이 나타 날 수 있 으 며 자 물 쇠 를 보 내 는 충돌 확률 이 가장 낮 고 병발 도가 가장 높다.
3.페이지 잠 금:시계 잠 금 과 줄 잠 금 사이 에 있 는 자물쇠 로 인접 한 줄 기록 을 잠 금 합 니 다.
특징:시계 자물쇠 와 줄 자물쇠 사이 에 있 기 때문에 비용 이 많이 들 고 자 물 쇠 를 추가 하 며 자 물 쇠 를 보 내 는 입도,자 물 쇠 를 보 내 는 충돌 확률,병발 도 는 모두 중간 정도 이다.자물쇠 가 잠 겨 있 는 현상 도 나타 날 수 있다.
우리 도 자물쇠 의 유형 에 따라 분류 할 수 있다.
  • 공유 자물쇠:읽 기 자물쇠 라 고도 부 릅 니 다.s 자물쇠 라 고도 부 릅 니 다.사용자 가 데이터 에 접근 할 때 데이터 에 읽 기 자 물 쇠 를 추가 하고 다른 사 무 는 데이터 에 읽 기 자 물 쇠 를 추가 할 수 있 을 뿐 자 물 쇠 를 추가 할 수 없습니다.모든 읽 기 자 물 쇠 를 풀 어야 데이터 에 자 물 쇠 를 추가 하 는 작업 을 할 수 있 습 니 다.그 다음 에 주요 한 특징 은 읽 기 자 물 쇠 를 추가 한 후에 동시 읽 기 데 이 터 를 지원 하고 데 이 터 를 읽 을 때 데 이 터 를 수정 하지 못 하 며 중복 읽 기 가 발생 하지 않도록 하 는 것 입 니 다.그래서 읽 기 자 물 쇠 를 여러 개 추가 할 수 있 습 니 다.
  • 줄 의 자물쇠:쓰기 자물쇠 라 고도 부 릅 니 다.x 자물쇠 라 고도 부 릅 니 다.사용자 가 데 이 터 를 기록 할 때 데이터 에 쓰기 자 물 쇠 를 추가 합 니 다.다른 사 무 는 데 이 터 를 읽 기 자물쇠 와 쓰기 자 물 쇠 를 포함 하지 않 고 쓰기 자물쇠 의 방출 을 기 다 려 야 데 이 터 를 읽 거나 기록 할 수 있 습 니 다.주요 한 특징 은 데이터 가 수정 되 었 을 때 어떠한 방문 이나 수정 도 허용 하지 않 고 더러 운 데이터 와 더러 운 읽 기 를 피 할 수 있 으 며 자 물 쇠 는 하나만 추가 할 수 있 고 다른 자물쇠 와 공유 자물쇠 가 서로 배척 하 는 것 이다.
  • 의향 공유 자물쇠:하나의 업무 가 전체 시계 에 공유 자 물 쇠 를 추가 하려 고 할 때 먼저 이 시계의 의향 공유 자 물 쇠 를 가 져 와 야 합 니 다.
  • 의향 이 자 물 쇠 를 배열 합 니 다.하나의 업무 가 전체 시계 에 자 물 쇠 를 추가 하려 고 할 때 먼저 이 표 의 의향 이 자 물 쇠 를 배열 해 야 합 니 다.
  • 2.사무,4 대 특성,격 리 등급 이 무엇 인지 아 십 니까?
    트 랜 잭 션:
    데이터 베 이 스 는 하나의 일치 성 상태 에서 다른 일치 성 상태,즉 업무 의 조작 을 모두 실행 하거나 실행 하지 않 는 다.예 를 들 어 사 무 는 한 그룹의 업무 수행 중의 여러 개의 SQL 문 구 를 하나의 전체 로 삼 는 다.그러면 이 여러 개의 문 구 는 모두 성공 적 으로 실행 되 거나 모두 실 패 했 습 니 다.이 데이터베이스 엔진 에서 InnoDB 는 사 무 를 지원 하지만 MyIASM 은 지원 하지 않 습 니 다.
    4 대 특성:
  • Atomicity 원자 성:업무 중의 각종 조작 은 모두 성공 하거나 모두 실 패 했 습 니 다.C
  • onsistency 일치 성:데이터 베 이 스 는 항상 하나의 일치 성 상태 에서 다른 일치 성 상태 로 전환 합 니 다.사무 가 끝 난 후 시스템 상태 가 일치 함 을 나타 낸다.
  • Isolation 격 리 성:여러 사무 가 동시에 방문 할 때 사무 간 에 격 리 되 어 보이 지 않 음 을 나타 낸다.하나의 사 무 는 다른 업무 의 운행 에 영향 을 주지 않 을 것 이다.
  • Durabilty 의 지속 성:한 업무 가 제출 되면 데이터 베 이 스 를 영구적 으로 조작 한 다 는 뜻 이다.
  • 이 ACID 는 주로 어떤 보증 이 있 나 요?
  • A 원자 성 은 undo log 로그 에서 보장 합 니 다.스크롤 백 이 필요 한 로그 정 보 를 기록 하고 트 랜 잭 션 이 취소 되면 성공 적 인 SQL 문 구 를 실행 합 니 다.
  • C 의 일치 성 은 기타 3 대 특성 에 의 해 보장 되 고 프로그램 코드 는 업무 의 일치 성 을 확보 해 야 한다
  • I 격 리 성 은 MVCC 에서
  • 을 보장 합 니 다.
  • D 의 지속 성 은 메모리+redo log 에서 보장 합 니 다.my sql 은 데 이 터 를 수정 하 는 동시에 메모리 와 redo log 로그 에 이번 작업 을 기록 합 니 다.데이터 베 이 스 를 지연 시 키 면 redo log 에서 복원 할 수 있 습 니 다.
  • 격 리 단계:
  • read-uncommitted 읽 기 미 제출:가장 낮은 격 리 단계,제출 되 지 않 은 데 이 터 를 읽 는 것 도 더러 운 읽 기 입 니 다.더러 운 읽 기 현상 과 중복 읽 기 불가,환 독 현상 이 발생 할 수 있 습 니 다.
  • read-committed 읽 기 제출:동시 다발 업무 에서 제출 한 데 이 터 를 읽 을 수 있 고 더러 운 읽 기 를 효과적으로 막 을 수 있 으 나 읽 을 때마다 값 이 바 뀌 었 기 때문에 중복 읽 기와 환 독 이 발생 할 수 없습니다.
  • repeatable-read 중복 읽 을 수 있 습 니 다.my sql 의 기본 격 리 단 계 는 같은 필드 를 여러 번 읽 는 결과 가 일치 합 니 다.더러 운 읽 기와 중복 읽 을 수 없 지만 환 독 은 여전히 발생 합 니 다.그 환 독 은 원래 내 가 읽 은 것 이 한 줄 밖 에 없 는 데 이 터 였 는데,이때 다시 읽 으 면 한 줄 이 더 많아 질 수 있 고,이때 가 환 독 이 었 다.
  • serializable 직렬 화:가장 높 은 격 리 등급 으로 더러 운 읽 기,중복 읽 기,환 독 현상 을 효과적으로 해결 할 수 있 습 니 다.하지만 효율 은 낮 을 것 이다.
  • 격 리 단계
    더 럽 게 읽다
    반복 해서 읽 을 수 없다
    환독 하 다
    read-uncommitted 제출 되 지 않 은 읽 기
    이 가능 하 다,~할 수 있다,...
    이 가능 하 다,~할 수 있다,...
    이 가능 하 다,~할 수 있다,...
    read-committed 읽 기 제출 됨
    해결 할 수 있다
    이 가능 하 다,~할 수 있다,...
    이 가능 하 다,~할 수 있다,...
    반복 가능-read 중복 읽 기
    해결 할 수 있다
    해결 할 수 있다
    이 가능 하 다,~할 수 있다,...
    직렬 화 가능
    해결 할 수 있다
    해결 할 수 있다
    해결 할 수 있다
    데이터 의 일치 성에 대해 말하자면 격 리 단계 가 높 을 수록 데이터 의 완전 성과 일치 성 을 확보 할 수 있 으 나 병발 하 는 성능 에 대한 영향 은 크다.대부분의 데이터베이스 의 기본 단 계 는 read-committed 입 니 다.예 를 들 어 Oracle 이지 만 MySQL 에 대한 기본 격 리 단 계 는?  repeatable-read 중복 읽 을 수 있 습 니 다.
    3.MyISAM 과 InnoDB 메모리 엔진 의 차이
    엔진 에 있어 서 우 리 는 명령 을 사용 하여 볼 수 있다.
    
    SHOW ENGINES;

    중요 한 것 은 이 두 개의 마 이 ISAM 과 이 노 DB 다.왜 냐 면 MySQL 에 있어 서 5 버 전 은 이전에 MyISAM 을 사 용 했 는데 지금 은 기본적으로 InnoDB 입 니 다.
    MyISAM :
    MyISAM 의 경우 동시성 이 비교적 떨 어 지고 업 무 를 지원 하지 않 기 때문에 상대 적 으로 응용 하 는 장면 이 비교적 적 고 주요 특징 은 다음 과 같다.
  • 은 트 랜 잭 션 을 지원 하지 않 고 ACID 의 4 대 특성 도 존재 하지 않 습 니 다.
  • 은 외부 키 조작 을 지원 하지 않 습 니 다.외부 키 를 강제로 추가 하면 MySQL 은 잘못 보고 하지 않 습 니 다.다만 외부 키 는 작 동 하지 않 습 니 다.
  • MyISAM 이 지원 하 는 자 물 쇠 는 시계 급 자물쇠 이기 때문에 병발 성능 이 떨 어 지고 자 물 쇠 를 넣 는 것 이 빠 르 며 자물쇠 충돌 이 비교적 높 지만 자물쇠 가 꺼 지 는 상황 은 피 할 수 있다.
  • 저장 구조 에서 MyISAM 은 디스크 에 세 개의 파일 을 저장 하 는데 파일 이름과 표 이름 이 같 고 확장 자 는 각각 저장 표 정의,저장 데이터,저장 색인 이다.
  • MyISAM 이 지원 하 는 색인 유형 은 전역 색인,B-Tree 색인
  • 이 있 습 니 다.
  • 성능 에 있어 SELECT 의 성능 이 비교적 높 고 조회 가 많은 경우
  • 에 적용 된다.
    InnoDB :
    현재 MySQL 의 기본 저장 엔진 은 MyISAM 에 비해 InnoDB 저장 엔진 이 크게 바 뀌 었 고 주요 특징 은 다음 과 같다.
  • 은 사무 조작 을 지원 하고 사무 ACID 격 리 특성 을 갖 추고 있다.
  • InnoDB 는 외부 키 조작 을 지원 합 니 다.
  • InnoDB 지원 잠 금 은 행 급 잠 금 뿐만 아니 라 표 급 잠 금 도 지원 하 므 로 행 급 잠 금 의 병발 성능 이 좋아 잠 금 이 꺼 지 는 경우 가 발생 할 수 있 습 니 다.
  • 저장 구조 에서 InnoDB 도 저장 표 구조 정의 가 있 지만 다른 것 은 InnoDB 의 표 데이터 와 색인 데 이 터 는 함께 저장 되 고 모두 B+수의 잎 노드 에 위치 하 며 MyISAM 의 표 데이터 와 색인 데 이 터 는 분리 된다 는 것 이다.
  • InnoDB 는 안전 한 로그 파일 을 가지 고 있 습 니 다.이 로그 파일 은 데이터베이스 붕괴 나 다른 상황 으로 인 한 데이터 손실 문 제 를 복구 하고 데이터 의 일치 성 을 확보 하 는 데 사 용 됩 니 다.
  • 이 노 DB 와 마 이 ISAM 이 지원 하 는 색인 유형 은 같 지만,구체 적 으로 구현 되 는 것 은 파일 구조 에 따라 큰 차이 가 있 기 때문이다.
  • 의 성능 에 있어 서 대량의 첨삭 작업 이 필요 하 다 면 InnoDB 메모리 엔진 을 사용 하 는 것 을 추천 합 니 다.
  • 둘 의 차이:
  • 사무:MYISAM 은 업 무 를 지원 하지 않 지만 매번 조회 할 때마다 원자 적 이 고 Innodb 는 업 무 를 지원 합 니 다.
  • 자물쇠:MYISAM 은 시계 급 자 물 쇠 를 지원 합 니 다.즉,매번 조작 할 때마다 전체 시계 에 대한 족쇄 를 지원 합 니 다.Innodb 는 줄 급 자 물 쇠 를 지원 합 니 다.작성 할 때
  • 을 지원 합 니 다.
  • 외부 키:MYSIAM 은 외부 키 를 지원 하지 않 고 Innodb 는 외부 키 제약
  • 을 지원 합 니 다.
  • 메모리 테이블 의 본점 수:MYISAM 은 메모리 테이블 의 본점 수 를 지원 하지만,Innodb 는 메모리 테이블 의 본점 수
  • 을 지원 하지 않 습 니 다.
  • 저장 파일:MYISAM 저장 표 는 세 개의 파일,색인 파일,표 구조 파일,데이터 파일 이 있 고 Innodb 는 공유 파일 을 저장 합 니 다.색인 과 데 이 터 를 함께 저장 하면 크기 는 운영 체제 파일 크기 에 제한 을 받 습 니 다
  • 장면:MYISAM 은 읽 기 에 적합 하고 Innodb 는 많이 쓰기 에 적합 하 다.
  • 총결산
    이 글 은 여기까지 입 니 다.만약 이 글 이 당신 에 게 도 도움 이 된다 면,당신 이 우리 의 더 많은 내용 에 관심 을 가 져 주시 기 바 랍 니 다!

    좋은 웹페이지 즐겨찾기