>데이터 베이스 >MySQL 튜토리얼 >고급 MYSQL을 소개하는 두 번째 기사

고급 MYSQL을 소개하는 두 번째 기사

coldplay.xixi
coldplay.xixi앞으로
2021-02-05 07:57:381351검색

고급 MYSQL을 소개하는 두 번째 기사

추천 무료 학습: mysql 비디오 튜토리얼

5 MySQL 아키텍처

고급 MYSQL을 소개하는 두 번째 기사
아래에서는 간략한 설명을 위해 가장 일반적으로 사용되는 스토리지 엔진 중 일부를 선택합니다. 데이터베이스의 성능에 직접적인 영향을 미치게 됩니다. 또한 스토리지 엔진을 사용하기 전에 스토리지 엔진의 몇 가지 특성을 잘 이해하시기 바랍니다.

5.1 MyISAM

MyISAM은 MySQL5.5 이전의 기본 스토리지 엔진이었습니다. 이러한 이유로 아직도 MyISAM 스토리지 엔진을 사용하는 서버가 많이 있습니다. 동시에 MyISAM은 현재 많은 시스템 테이블과 임시 테이블에서 사용되는 스토리지 엔진입니다. 여기서 언급하는 임시 테이블은 우리가 create table을 통해 생성하는 테이블을 의미합니다. 정렬, 그룹화 및 기타 작업 중에 숫자가 특정 크기를 초과하면 쿼리 최적화 프로그램에 의해 임시 테이블이 생성됩니다. create table创建出来的表,是指在排序、分组等操作中,当数量超过一定的大小之后,有查询优化器建立的临时表。
MyISAM存储引擎是由MYD和MYI组成,MYD是数据文件的扩展名,MYI是索引文件的扩展名,这个存储引擎是将表存储在以这两个为扩展名的数据文件和索引文件中。

特性:

  • 并发性与锁级别
    MyISAM使用的是表级锁,并不是行级锁,这也就意味着对表中的数据进行修改时,需要对整个表进行加锁,而在对表的读取时也对所有的表加共享锁,从这里我们可以看到,使用MyISAM做引擎的表读取和写入两种操作是互斥的。由此可以看到MyISAM对于读写的并发操作并不会很好。如果只对于只读取操作的话,就并发性而言,性能也还不错,因为共享锁不会阻塞共享锁。
  • 表损坏修复
    MyISAM支持由于任意意外关闭而损坏的MyISAM表,进行检查和修复操作,但是这里说的修复并不是数据的恢复,因为MyISAM并不是一种事务性的存储引擎,所以它不能进行事务恢复所需要的相关日志,所以要注意MyISAM表的恢复可能会造成数据的丢失。
    我们可以通过check table tablename对表进行检查,通过repair table tablename对表进行恢复。
  • MyISAM表支持的索引类型
    MyISAM支持全文索引,并且在mysql5.7版本之前唯一原生就支持全文索引的官方存储引擎。
  • MyISAM表支持数据压缩
    如果MyISAM表示一张很大的只读表,也就是在表创建完导入数据后,就不会对表进行任何修改操作了,那我们就可以对表进行压缩了,以减少磁盘I/O。 我们可以使用myisampack命令来对表进行压缩。压缩是对表独立进行压缩的,因此读取一行数据的时候,不必对整个表进行解压。

限制:

  • 版本
  • 如存储大表则要修改MAX_Rows 和 AVG_ROW_LENGTH
  • 版本 > mysql5.0时默认支持位256TB

适用场景:

  • 非事务性应用
  • 只读类应用(报表之类)
  • 空间类应用

5.2 Innodb

Innodb是MySQL5.5及之后版本默认的存储引擎,Innodb是事务存储的存储引擎,也就是说支持事务的处理。
Innodb有自己的表空间的概念,然后数据是存储在表空间之中的,是由innodb_file_per_table这个参数来决定的,如果这个参数为ON,则会对每个Innodb表建立一个扩展名为ibd的系统文件,如果这个参数为OFF时,则会把数据存储到系统的共享表空间,也就是ibdataXX代表的时一个数字,默认从1开始。
查看这个参数的命令为:
show variables like 'innodb_file_per_table';
修改这个参数的命令为:
set global innodb_file_per_table=off;

5.2.1 系统表空间和独立表空间要如何选择

比较:

기능:
  • 동시성 및 잠금 수준
MyISAM은 예상치 못한 종료로 인해 손상된 MyISAM 테이블을 확인하고 복구하는 것을 지원하지만 여기서 언급한 복구는 데이터 복구가 아닙니다. MyISAM은 트랜잭션 스토리지 엔진이 아니기 때문에 수행할 수 없습니다. 트랜잭션 복구에 필요한 관련 로그가 있으므로 MyISAM 테이블 복구로 인해 데이터 손실이 발생할 수 있다는 점에 유의하세요. MyISAM은 전체 텍스트 인덱싱을 지원하며 mysql5.7 이전에 전체 텍스트 인덱싱을 기본적으로 지원하는 유일한 공식 스토리지 엔진이었습니다.
  • MyISAM 테이블은 데이터 압축을 지원합니다.
  • MyISAM이 대규모 읽기 전용 테이블을 나타내는 경우, 즉 테이블이 생성되고 데이터를 가져온 후에는 테이블이 수정되지 않습니다. 디스크 I/O를 줄이기 위해 테이블이 압축됩니다. myisampack 명령을 사용하여 테이블을 압축할 수 있습니다. 압축은 테이블을 독립적으로 압축하므로 데이터 행을 읽을 때 전체 테이블의 압축을 풀 필요가 없습니다. 제한 사항:
    系统表空间 独立表空间
    无法简单的收缩文件大小 可以通过optimize table MyISAM 스토리지 엔진은 MYD와 MYI로 구성됩니다. MYD는 데이터 파일의 확장자이고 MYI는 이 두 가지 확장자를 가진 데이터 파일과 인덱스 파일에 테이블을 저장합니다.
    MyISAM은 행 수준 잠금이 아닌 테이블 수준 잠금을 사용합니다. 즉, 테이블의 데이터를 수정할 때 테이블 전체를 수정해야 합니다. 테이블을 읽을 때 모든 테이블에 공유 잠금도 추가하세요. 여기에서 MyISAM을 엔진으로 사용하는 테이블 읽기 및 쓰기 작업이 상호 배타적이라는 것을 알 수 있습니다. MyISAM은 동시 읽기 및 쓰기 작업에 그다지 좋지 않다는 것을 알 수 있습니다. 읽기 전용 작업에만 해당하는 경우 공유 잠금이 공유 잠금을 차단하지 않으므로 동시성 측면에서 성능이 나쁘지 않습니다.
  • 테이블 손상 복구
  • check table tablename을 통해 테이블을 확인하고, repair table tablename을 통해 테이블을 복원할 수 있습니다.
  • MyISAM 테이블에서 지원되는 인덱스 유형
    • 큰 테이블을 저장하는 경우 MAX_Rows를 수정해야 합니다. 및 AVG_ROW_LENGTH
    • 버전> MySQL5.0은 기본적으로 256TB를 지원합니다.
    🎜적용 가능한 시나리오:🎜
    • 비트랜잭션 애플리케이션
    • 읽기- 전용 애플리케이션(보고서 등)
    • 공간 애플리케이션
    🎜🎜5.2 Innodb🎜🎜🎜Innodb는 MySQL5.5 이상 버전의 기본 스토리지 엔진입니다. 즉, 트랜잭션 저장을 위한 엔진입니다. 🎜 Innodb는 테이블스페이스에 대한 고유한 개념을 가지고 있으며, 데이터는 innodb_file_per_table 매개변수에 의해 결정되는 테이블스페이스에 저장됩니다. 이 매개변수가 ON이면 시스템입니다. 각 Innodb 테이블에 대해 확장자가 ibd인 파일이 생성됩니다. 이 매개변수가 OFF인 경우 데이터는 시스템의 공유 테이블 공간, 즉 에 저장됩니다. >ibdataX, X는 기본적으로 1부터 시작하는 숫자를 나타냅니다. 🎜 이 매개변수를 보는 명령은 다음과 같습니다. 🎜show Variables like 'innodb_file_per_table';🎜 이 매개변수를 수정하는 명령은 다음과 같습니다. 🎜set global innodb_file_per_table=off;🎜🎜🎜 5.2.1 시스템 테이블스페이스와 독립 테이블스페이스 중에서 선택하는 방법 🎜🎜🎜🎜비교: 🎜🎜🎜🎜파일 크기는 단순히 축소할 수 없습니다🎜🎜optimize table 명령을 통해 시스템 파일을 축소할 수 있습니다🎜🎜🎜🎜 IO 병목 현상🎜🎜동시에 여러 파일로 전송할 수 있습니다. 파일 새로 고침 데이터🎜🎜🎜🎜

    권장사항:

    • Innodb용 독립 테이블스페이스 사용

    원래 시스템 테이블스페이스에 존재했던 테이블을 독립 테이블스페이스로 전송하는 방법.
    단계:

    1. mysqldump를 사용하여 모든 데이터베이스 테이블 데이터 내보내기
    2. MySQL 서비스 중지, 매개변수 수정 및 Innodb 관련 파일 삭제
    3. MySQL 서비스 다시 시작, Innodb 시스템 테이블 공간 재구축
    4. 데이터 다시 가져오기

    5.2 .2 Innodb 스토리지 엔진의 특징

    • Innodb는 트랜잭션 스토리지 엔진입니다
    • 트랜잭션의 ACID 특성(앞서 소개한 원자성, 일관성 등)을 완벽하게 지원합니다
    • Redo Log 및 Undo Log
      Redo 로그 구현 트랜잭션의 내구성은 두 부분으로 구성됩니다. 그 중 하나는 innodb_log_buffer_size에 의해 크기가 결정되는 메모리의 작업 로그 영구 버퍼이고, 다른 하나는 파일에서 볼 수 있는 ib_logflie인 재구성된 로그 파일입니다. 시스템 관련 문서. Undo Log는 트랜잭션의 원자성을 인식하고 트랜잭션이 실패할 경우 롤백 작업을 수행합니다. Redo Log는 순차적으로 읽고 기록되며, Undo Log는 무작위로 읽고 기록됩니다. 가능하면 SSD에 데이터를 저장하여 성능을 향상시킬 수 있습니다.
    • Innodb는 행 수준 잠금을 지원합니다.
      행 수준 잠금과 테이블 수준 잠금은 스토리지 엔진 계층에서 최대한 동시성을 지원할 수 있다는 것이 특징입니다. .

    5.2.3 Innodb 상태 확인

    다음 명령을 사용하여 Innodb 상태를 확인할 수 있습니다.
    show engine innodb status

    5.2.4 적용 가능한 시나리오

    Innodb는 대부분의 OLTP 애플리케이션에 적합합니다. Innodb는 이미 전체 텍스트 인덱싱 및 공간 기능을 지원합니다.

    5.2.4 (확장) 자물쇠란 무엇인가요

    5.2.3.1 자물쇠란 무엇인가요?

    • 잠금의 주요 기능은 공유 리소스에 대한 동시 액세스를 관리하는 것입니다.
    • 잠금은 트랜잭션 격리를 달성하는 데 사용됩니다.

    5.2.3.2 잠금 유형:

    • 공유 잠금(읽기 잠금이라고도 함)
    • 독점 잠금 (쓰기 잠금이라고도 함)

    5.2.3.3 쓰기 잠금과 읽기 잠금의 호환성 관계(한 행에 대한 호환성)

    시스템 테이블스페이스 독립 테이블스페이스🎜

    쓰기 잠금 읽기 잠금
    쓰기 잠금 호환되지 않음 호환되지 않음
    읽기 잠금 호환되지 않음 호환됨

    실제 상황에서는 결과가 위 표의 결과와 다를 수 있습니다. 주로 Innodb의 잠금 메커니즘이 매우 복잡하고 최종 결과에 영향을 미치는 잠금이 많기 때문입니다.

    5.2.3.4 잠금 세분성:

    • 테이블 수준 잠금
    • 행 수준 잠금

    5.2.3.5 차단 및 교착 상태

    차단: 차단은 서로 다른 잠금 간의 호환성 관계로 인해 발생합니다. 한 트랜잭션에서는 다른 트랜잭션의 잠금이 해제될 때까지 기다려야 하며, 해당 트랜잭션이 차지하는 리소스는 차단을 형성합니다.
    교착상태(Deadlock): 교착상태란 트랜잭션 실행 중에 상대방이 기다리고 있는 자원을 두 개 이상의 트랜잭션이 점유할 때 발생하는 예외를 말한다. 정의에서 알 수 있듯이, 차단된 트랜잭션이 여러 개일 때 차단된 트랜잭션이 기다리고 있는 자원을 점유하는 경우를 말하며, 차단된 트랜잭션이 여러 개일 때 서로가 기다리고 있는 리소스를 점유하는 경우를 교착상태(deadlock)라고 합니다.

    5.3 CSV 저장 엔진

    CSV 저장 엔진은 csv 파일을 mysql 테이블 파일로 처리할 수 있습니다. 이 저장 엔진의 저장 형식은 csv 저장 엔진의 데이터 저장 방법이 매우 독특합니다. MyISAM 또는 Innodb에 테이블을 저장하면 이 두 파일은 바이너리 형식으로 저장되지만 CSV 저장 엔진은 텍스트가 파일에 저장되기 때문에 데이터 파일을 직접 볼 수 없습니다. 즉, more와 같은 파일을 보는 명령을 통해 볼 수 있고, CSV 파일의 형식과 요구 사항을 충족하는 한 vi 명령을 사용하여 CSV 저장소 엔진의 테이블을 보고 편집할 수 있습니다. 데이터 손상을 걱정할 필요가 없습니다.
    mysql에서 CSV 스토리지 엔진 테이블을 생성하면 3가지 파일 시스템의 파일을 볼 수 있어야 합니다. 이 세 가지 파일 이름은 모두 테이블 이름을 기반으로 하지만 각각 접미사로 csv, csm 및 frm이 있습니다. csv 파일은 CSV 저장소 엔진의 데이터 파일입니다. csm 파일은 테이블의 메타데이터와 테이블 상태, 데이터 볼륨을 저장합니다. FRM 파일은 테이블 구조 정보를 저장합니다.

    5.3.1 CSV 저장 엔진의 특징

    • 가장 큰 특징은 CSV 형식으로 데이터를 저장한다는 점
      CSV의 각 열은 , 로 구분되며, 텍스트의 내용이 동봉되어 있습니다. 아래와 같이 큰따옴표로 묶습니다. ,来分隔的,并且文本的内容是以双引号来引起来的,如下图所示:
      고급 MYSQL을 소개하는 두 번째 기사
    • 所有列必须都是不能为NULL的
      在建表的时候所有的列都必须是非空的,不能存储为NULL的值
    • 不支持索引
      不适合大表,不适合在线处理
    • 可以对数据文件直接编辑
      保存文本文件内容

    5.3.2 CSV存储引擎的适用场景

    CSV存储引擎适合作为数据交换的中间表
    고급 MYSQL을 소개하는 두 번째 기사
    고급 MYSQL을 소개하는 두 번째 기사

    5.4 Archive存储引擎

    5.4.1 文件系统存储特点

    Archive存储引擎会缓存所有的写,并且利用zlib对插入的行进行压缩,因此Archive存储引擎相对于MyISAM存储引擎的表更加节省磁盘I/O,对于同样数量级的数据,Archive存储引擎相对于MyISAM和Innodb更加节省存储空间。一个几T的Innodb的表存储在Archive存储引擎当中,可能只需要几百兆的存储空间。
    Archive存储引擎的表的数据是以ARZ为后缀的一个文件,和其他引擎一样,也存在一个以frm为后缀的系统文件,用于存储表的结构信息。

    5.4.2 Archive存储引擎的特点

    • 只支持insertselect
    • 모든 열은 NULL이 아니어야 합니다.
    • 테이블을 생성할 때 모든 열은 Null이 아니어야 하며 NULL 값으로 저장할 수 없습니다.

    인덱스를 지원하지 않습니다. 대규모 테이블에는 적합하지 않습니다.

    데이터 파일을 직접 편집할 수 있습니다

    텍스트 파일 내용 저장

    5.3.2 CSV 스토리지 엔진의 적용 시나리오

    CSV 스토리지 엔진은 데이터 교환을 위한 중간 테이블로 적합합니다여기에 이미지 설명 삽입여기에 이미지 설명 삽입

    🎜🎜5.4 아카이브 스토리지 엔진🎜🎜🎜🎜5.4.1 파일 시스템 스토리지 기능🎜🎜🎜 아카이브 스토리지 엔진 모두 쓰기 그리고 zlib를 사용하여 삽입된 행을 압축합니다. 따라서 Archive 스토리지 엔진은 MyISAM 스토리지 엔진의 테이블과 비교하여 디스크 I/O를 절약합니다. MyISAM 테이블은 저장 공간을 더 절약합니다. Archive 스토리지 엔진에 저장된 수 테라바이트 Innodb 테이블에는 수백 메가바이트의 저장 공간만 필요할 수 있습니다. 🎜 Archive 스토리지 엔진의 테이블 데이터는 접미사 ARZ를 갖는 파일입니다. 다른 엔진과 마찬가지로 테이블의 구조 정보를 저장하는 데 사용되는 접미사 frm을 갖는 시스템 파일도 있습니다. 🎜🎜🎜5.4.2 아카이브 스토리지 엔진의 기능🎜🎜🎜🎜삽입선택 작업만 지원🎜🎜자동 증가 ID 열에 대한 인덱싱만 허용🎜🎜🎜 🎜 5.4.3 아카이브 스토리지 엔진 사용 시나리오🎜🎜🎜시나리오 1: 로그 및 데이터 수집 데이터🎜 아카이브는 수정 및 삭제를 지원하지 않기 때문에 우리 ORDB는 확실히 데이터를 수정하지만 일부 웨어하우스 유형 애플리케이션의 경우 또는 일부 특수 테이블은 여전히 ​​​​데이터를 수정합니다. 로깅 테이블이나 데이터 수집 테이블과 같이 유용하며 많은 양의 데이터를 수집해야 하기 때문에 Archive 스토리지 엔진이 더 적합합니다. Archive 스토리지 엔진은 모든 엔진 중에서 저장 공간이 가장 작기 때문에 데이터 수집이나 로깅 응용 프로그램에서도 Archive 스토리지 엔진은 이러한 데이터를 업데이트할 수 없으므로 로그를 기록할 때 또는 데이터 컬렉션에서 데이터를 수정하는 경우 주의해야 합니다. 응용 프로그램을 사용하는 경우 Archive 스토리지 엔진을 사용하지 못할 수 있습니다. 🎜🎜🎜5.5 메모리 저장 엔진🎜🎜🎜🎜5.5.1 파일 시스템 저장 기능🎜🎜

    메모리 스토리지 엔진은 HEAP 스토리지 엔진이라고도 부르므로 데이터가 메모리에 저장됩니다. 이는 데이터 테이블이 일회용임을 의미합니다. MySQL 서비스가 다시 시작되면 모든 메모리 스토리지 엔진 데이터가 사라지지만 테이블 구조는 다음과 같습니다. 왜냐하면 메모리 스토리지 엔진에서 테이블을 생성할 때 테이블 구조를 저장하는 데 사용되는 frm 시스템 파일이 하나만 생성되기 때문입니다. 이것이 MySQL 서버를 다시 시작할 때 데이터가 손실되지만 테이블 구조는 손실되지 않는 이유입니다.
    파일 저장 특성을 통해 MyISAM의 인덱스만 메모리에 저장되고 데이터는 연산에 의해 캐시되기 때문에 메모리 저장 엔진의 I/O 효율성이 MyISAM보다 훨씬 높음을 알 수 있습니다. 시스템에 비해 메모리 스토리지 엔진은 데이터와 인덱스가 메모리에 저장되는 반면, 메모리 스토리지 엔진의 특징을 살펴보겠습니다.

    5.5.2 메모리

    기능:

    • HASH 인덱스(기본값) 및 BTree 인덱스
      를 지원합니다. HASH 인덱스인 경우 동일한 쿼리를 수행할 때 매우 빠릅니다. 범위 쿼리를 수행하는 경우 HASH 인덱스를 사용할 수 없으므로 테이블 생성 시 주의가 필요합니다. 테이블에 동일한 쿼리가 많이 필요한 경우 HASH 인덱스를 사용하고 범위 쿼리에는 BTree 인덱스를 사용합니다. 다양한 인덱스 유형은 성능에 큰 영향을 미칠 수 있습니다.
    • 모든 필드는 고정 길이입니다. varchar(10) = char(10)
      이를 위해서는 테이블 구조를 정의할 때 최소 필드 길이 요구 사항을 충족해야 합니다. 그렇지 않으면 많은 메모리가 낭비됩니다.
    • BLOG 및 TEXT와 같은 대규모 필드를 지원하지 않습니다.
    • 메모리 저장 엔진은 테이블 수준 잠금을 사용합니다.
    • 최대 크기는 max_heap_table_size 매개변수에 의해 결정됩니다.
      이 매개변수의 기본값은 저장하려는 경우 16MB입니다. 메모리 스토리지 엔진 테이블에 많은 양의 데이터가 있는 경우 이 매개변수를 수정해야 하며, 이 매개변수 수정 사항은 기존 메모리 스토리지 엔진 테이블에 적용되지 않습니다. 기존 테이블에 적용해야 하는 경우 다시 빌드해야 합니다. 기존 테이블.

    5.5.3 메모리에서 쉽게 혼동되는 개념

    메모리 스토리지 엔진 테이블:
    모든 시스템에서 사용할 수 있으며 임시 테이블이 아닙니다.
    임시 테이블:
    임시 테이블에는 두 가지 유형이 있습니다. 하나는 쿼리 최적화 프로그램이 쿼리를 최적화할 때 시스템에서 사용하는 임시 테이블이며, 이는 내부 임시 테이블입니다. BLOB 또는 TEXT 대형 필드)), MyISAM 임시 테이블을 사용하고 메모리 테이블을 제한을 초과하지 않고 사용하십시오.
    다른 하나는 create temporary table 명령을 통해 생성된 임시 테이블입니다. 생성된 테이블은 모든 스토리지 엔진을 사용할 수 있습니다. create temporary table建立的临时表,建立的表可以使用任何存储引擎。
    无论是哪种临时表,只对内部可见。

    5.5.4 Memory的使用场景

    • 用于查找或者映射表,例如邮编和地区的对应表
    • 用于保存数据分析中产生的中间表
    • 用于缓存周期聚合数据的结果表

    Memory数据易丢失,所以要求数据可再生。

    5.6 Federated存储引擎

    5.6.1 Federated的特点

    • 提供了访问远程MySQL服务器上表的方法
      由于Federated存储引擎只是在本地建立了到远程服务器的一个连接,所以可以说我们所要访问的表全部还是放在远程服务器上,在本地并不存储数据。每次访问Federated存储引擎表的时候,查询都会被发送到远程服务器上运行,并从远程的MySQL服务器上获取相关的数据。
    • 本地不存储数据,数据全部放到远程服务器上
    • 本地需要保存表结构和远程服务器的连接信息
      因此也会在系统中存在一个frm文件,用于存于远程信息以及如何连接远程表的相关信息。

    5.6.2 Federated如何使用

    Federated存储引擎可以实现SQL Server连接服务器的功能,但是由于本身的性能并不太好,通常可以通过复制等实现相同的目的,所以在当前的MySQL版本中,Federated存储引擎默认是禁止的。如果需要使用Federated存储引擎,则需要在/usr/local/mysql/my.cnf中加入federated=1,接着重启MySQL服务器,我们可以通过show engine来确认当前MySQL服务器是否支持Federated存储引擎。
    而在create table语句中使用下面的连接字符串,
    mysql://user_name[:password]@host_name[:port_num]/db_name/tbl_name
    远程服务器绑定连接:
    grant select,update,insert,delete on remote.remote_fet to fred_link@'127.0.0.1' identified by '123456' 어떤 종류의 임시 테이블이라도 내부에서만 보입니다.

    5.5.4 메모리 사용 시나리오

      우편번호, 지역 대응 테이블 등의 테이블을 조회하거나 매핑하는 데 사용됩니다.

    • 데이터 분석 중에 생성된 중간 테이블을 저장하는 데 사용됩니다.
    주기적 집계 결과를 캐시하는 데 사용됩니다. data Table

    메모리 데이터는 쉽게 잃어버리기 때문에 재현이 가능해야 합니다.

    🎜🎜5.6 Federated 스토리지 엔진 🎜🎜🎜🎜5.6.1 Federated의 특징 🎜🎜🎜🎜 원격 MySQL 서버의 테이블에 액세스하는 방법을 제공합니다. 🎜 Federated 스토리지 엔진은 원격 서버에 로컬로만 연결을 설정하므로 우리가 액세스하려는 모든 테이블은 여전히 ​​원격 서버에 있으며 로컬에 데이터가 저장되어 있지 않다고 할 수 있습니다. 페더레이티드 스토리지 엔진 테이블에 접근할 때마다 쿼리가 원격 서버로 전송되어 실행되고, 원격 MySQL 서버에서 관련 데이터를 가져옵니다. 🎜🎜데이터는 로컬에 저장되지 않으며 모든 데이터는 원격 서버에 저장됩니다.🎜🎜원격 서버의 테이블 구조와 연결 정보는 로컬에 저장되어야 합니다.🎜 따라서 시스템에 원격 저장을 위한 frm 파일도 있습니다. 정보 및 원격 테이블 관련 정보에 연결하는 방법. 🎜🎜🎜🎜5.6.2 Federated 사용 방법 🎜🎜🎜 Federated 스토리지 엔진은 서버에 연결되는 SQL Server의 기능을 구현할 수 있습니다. 그러나 자체 성능이 좋지 않기 때문에 일반적으로 동일한 목적을 다음을 통해 달성할 수 있습니다. 복제 등이 포함되어 있으므로 현재 MySQL에서는 이 버전에서는 통합 스토리지 엔진이 기본적으로 비활성화되어 있습니다. Federated 스토리지 엔진을 사용해야 하는 경우 /usr/local/mysql/my.cnffederated=1를 추가한 다음 MySQL 서버를 다시 시작해야 합니다. 현재 MySQL 서버가 페더레이션된 스토리지 엔진을 지원하는지 확인하기 위해 show 엔진을 전달할 수 있습니다. 🎜 그리고 create table 문에 다음 연결 문자열을 사용합니다. 🎜mysql://user_name[:password]@host_name[:port_num]/db_name/tbl_name🎜 Remote Server 바인딩 연결: 🎜'123456'으로 식별되는 fred_link@'127.0.0.1'에 대해 remote.remote_fet에서 선택, 업데이트, 삽입, 삭제 권한을 부여합니다.🎜 쿼리할 원격 서버의 관련 정보를 확인할 수 있습니다. 관련 데이터베이스 테이블에 대한 일부 정보. 🎜🎜🎜5.6.3 Federated의 적용 가능한 시나리오🎜🎜🎜🎜수시적 통계 분석 및 수동 쿼리🎜 Federated의 느린 성능으로 인해 수시적 통계 분석 및 수동 쿼리에만 적합합니다. 🎜🎜🎜🎜6 올바른 스토리지 엔진을 선택하는 방법🎜🎜🎜참조 조건: 🎜
    • Transactions
    • Backup
    • Crash Recovery
    • 스토리지 엔진의 고유한 기능
      스토리지 엔진을 혼합하지 마세요.

    위 내용은 고급 MYSQL을 소개하는 두 번째 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제