권장(무료): SQL
Zero, 데이터베이스 드라이버
1. 데이터베이스 연결 풀
2. SQL 인터페이스
3. 쿼리 파서
4. MySQL 쿼리 최적화기
쿼리 옵티마이저는 스토리지 엔진 인터페이스를 호출하여 SQL을 실행합니다. 정말
Executor는 최종적으로 스토리지 엔진 인터페이스를 호출하여 일련의 실행 계획에 따라 SQL의 실행을 완료합니다.
Buffer Pool(버퍼 풀)은 SQL에서 매우 중요한 메모리 구조입니다. InnoDB 스토리지 엔진입니다.
1. 실행 취소 로그 파일 : 데이터가 수정되기 전의 모습을 기록합니다.
기능: 실행 취소 로그 파일을 사용하여 트랜잭션 롤백을 완료합니다.
2. redo 로그 파일 : 수정된 데이터를 기록합니다.
redo는 데이터 수정 후의 값을 기록합니다. 트랜잭션 제출 여부에 관계없이 MySQL은 이러한 작업을 저장합니다. 완료하려면 업데이트된 데이터가 리두 로그 버퍼에 기록된 후 특정 시점에 디스크에 유지됩니다.
Properties | redo Log | bin Log |
---|---|---|
파일 크기 | 리두 로그의 크기는 고정되어 있습니다(구성에서도 설정할 수 있으며 일반적으로 기본값이면 충분합니다) | bin log를 전달할 수 있습니다. 구성 매개변수 max_bin log_size 는 각 bin log 파일의 크기를 설정합니다(그러나 일반적으로 수정하는 것은 권장되지 않습니다). max_bin log_size 设置每个bin log 文件的大小(但是一般不建议修改)。 |
实现方式 |
redo log 是InnoDB 引擎层实现的(也就是说是 Innodb 存储引起过独有的) |
bin log 是 MySQL 层实现的,所有引擎都可以使用 bin log 日志 |
记录方式 | redo log 采用循环写的方式记录,当写到结尾时,会回到开头循环写日志。 | bin log 通过追加的方式记录,当文件大小大于给定值后,后续的日志会记录到新的文件上 |
使用场景 |
redo log 适用于崩溃恢复(crash-safe)(这一点其实非常类似与 Redis 的持久化特征) |
bin log |
redo 로그
는 InnoDB
엔진 계층에 의해 구현됩니다(즉, Innodb 저장소에 고유함)
bin log
는 MySQL 레이어에 의해 구현됩니다. 모든 엔진은 bin log
를 사용할 수 있습니다. log🎜🎜🎜🎜기록 방법🎜🎜redo 로그는 끝까지 기록할 때 루프 쓰기 방법을 사용합니다. 루프의 쓰기 로그를 처음으로 반환합니다. 🎜🎜bin 로그는 파일 크기가 지정된 값보다 클 경우 후속 로그가 새 파일에 기록됩니다.🎜🎜🎜🎜사용 시나리오🎜🎜redo 로그
는 충돌 복구에 적합합니다. (충돌 방지) (실제로 Redis의 지속성 기능과 매우 유사합니다.) 🎜🎜bin log
는 마스터-슬레이브 복제 및 데이터 복구에 적합합니다.🎜🎜🎜🎜🎜bin 로그는 전체 작업을 기록합니다. 기록 (마스터-슬레이브 복제에 매우 중요합니다)🎜위 내용은 SQL 문 실행의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!