이전에 mysql을 사용해 왔지만 내부적으로 어떻게 작동하는지 이해할 수 없습니다. 누군가가 디스크에있는 데이터의 내부 표현이 어떻게 보이는지에 대한 좋은 자료를 알려주고, 또한 사물이 너무 빨리 검색되고 액세스되는 방법을 논의 할 수 있습니까? 더 나은 방법은 누군가가 높은 수준의 간결한 설명을 제시 할 수 있습니까?mysql 데이터는 디스크에 어떻게 저장됩니까?
답변
MySQL 서버는 주로 서버의 데이터 디렉토리라고하는 단일 위치 아래에있는 디렉토리와 파일에 대해 여러 가지 방법으로 디스크 공간을 사용합니다. 서버는 데이터 디렉토리를 사용하여 다음을 모두 저장합니다.
- 데이터베이스 디렉토리. 각 데이터베이스는 데이터베이스에서 작성하는 테이블 유형에 관계없이 데이터 디렉토리 아래의 단일 디렉토리에 해당합니다. 예를 들어, 주어진 데이터베이스는 MyISAM 테이블, InnoDB 테이블 또는 그 둘을 섞어서 하나의 디렉토리로 표현된다.
- 테이블 구조에 대한 설명이 들어있는 테이블 형식 파일 (.frm 파일)입니다. 모든 테이블에는 적절한 데이터베이스 디렉토리에있는 자체 .frm 파일이 있습니다. 어느 스토리지 엔진이 테이블을 관리하든 상관 없습니다.
- 일부 저장소 엔진에서 각 테이블에 대해 데이터 파일과 인덱스 파일을 만들고 해당 데이터베이스 디렉터리에 저장합니다. 예를 들어, MyISAM 스토리지 엔진은 각 테이블에 대한 데이터 파일과 인덱스 파일을 생성합니다.
- InnoDB 스토리지 엔진에는 자체 테이블 공간과 로그 파일이 있습니다. 테이블 스페이스는 모든 InnoDB 테이블에 대한 데이터와 인덱스 정보는 물론 트랜잭션을 롤백해야 할 경우 필요한 실행 취소 로그를 포함합니다. 로그 파일은 커미트 된 트랜잭션에 대한 정보를 기록하며 데이터 손실이 발생하지 않도록 보장합니다. 기본적으로 테이블 공간과 로그 파일은 데이터 디렉토리에 있습니다. 기본 테이블 공간 파일의 이름은 ibdata1이고 기본 로그 파일의 이름은 ib_logfile0 및 ib_logfile1입니다. (InnoDB가 테이블마다 하나의 테이블 스페이스 파일을 사용하도록 InnoDB를 구성 할 수도있다.)이 경우, InnoDB는 주어진 테이블의 테이블 스페이스 파일을 테이블의 데이터베이스 디렉토리에 생성한다.
- 서버 로그 파일과 상태 파일. 이 파일에는 서버가 처리중인 명령문에 대한 정보가 들어 있습니다. 로그는 복제 및 데이터 복구, 쿼리 성능 최적화에 사용되는 정보를 얻고 운영 문제의 발생 여부를 확인하는 데 사용됩니다.
조용한 많은 정보를 가지고 훌륭한 답변을하셨습니까? 가능한 경우 향후 연구를위한 참고 자료를 추가하십시오. – rekire
MySQL 스토리지를 조사 할 때이 정보를 발견했습니다. 이것은 MySQL DBA 블로그 –
@PeterVenderberghe 중 하나에서 언급되었습니다 ... –
- 1. 데이터는 MySql 데이터베이스에 어떻게 저장됩니까?
- 2. CouchDB의 뷰는 디스크에 어떻게 저장됩니까?
- 3. 데이터는 SQL 서버에 어떻게 저장됩니까?
- 4. 일반적으로 일반 데이터는 어떻게 저장됩니까?
- 5. 내 데이터는 어떻게 R에 저장됩니까?
- 6. Docker 컨테이너의 비 볼륨 데이터는 어떻게 저장됩니까?
- 7. mysqlimport - 가져온 데이터는 어디에 저장됩니까?
- 8. HttpSession 데이터는 어디에 저장됩니까?
- 9. 키 체인 데이터는 어디에 저장됩니까?
- 10. MySQL-cluster를 사용하여 저장된 테이블 데이터는 정확히 어디에 저장됩니까?
- 11. 내 데이터는 매트릭스 및 목록으로 동시에 저장됩니까?
- 12. 봄 + 최대 절전 모드 + H2 임베디드 DB. 데이터는 어떻게 저장됩니까?
- 13. 유니 코드 또는 다른 코딩 데이터는 메모리에 어떻게 저장됩니까? (win32)
- 14. 이 줄 바꿈은 어떻게 MySql DB에 저장됩니까?
- 15. cck "값 개수"데이터는 어디에 저장됩니까?
- 16. Google App Engine의 데이터는 항상 순서대로 저장됩니까?
- 17. 파일 데이터는 장치 파일에 어디에 저장됩니까?
- 18. VC2008 읽기 데이터는 디스크에 JPEG를 저장 GDI +
- 19. MySQL 클러스터에 저장된 데이터는 어디에 있습니까?
- 20. POST JSON 데이터는 MYSQL
- 21. 데이터는 MySQL 데이터베이스에서 html로
- 22. 노동 조합원은 어떻게 저장됩니까?
- 23. 제품은 데이터베이스에 어떻게 저장됩니까?
- 24. 배열은 스택에 어떻게 저장됩니까?
- 25. 이미지는 EMGU에 어떻게 저장됩니까?
- 26. 반환 값은 어떻게 저장됩니까?
- 27. varchar 인덱스는 어떻게 저장됩니까?
- 28. 개체는 힙에 어떻게 저장됩니까?
- 29. Process.StandardOutput 스트림은 어떻게 저장됩니까?
- 30. 배열이 메모리에 어떻게 저장됩니까?
이 질문에 영장 진짜 좋은 연구뿐만 아니라 질문의 응답 시간은 –
책 "프로 MySQL은"아주 철저하게이 과정을 설명 http://dba.stackexchange.com에 더 적합 할 수 있습니다. – Marty
IMHO 이것은 MyISSAM과 InnoDB의 구조를 사용하는 스토리지 엔진에 따라 다르다. 그러나 AFIK는 모든 D 또는 KD 나무를 사용합니다 (저는 지금 K에 대해 잘 모르겠습니다). – rekire