찾다
php教程PHP开发Yii2를 사용하여 마스터-슬레이브 데이터베이스 설정 구현

머리말

MySQL 마스터-슬레이브 동기화는 현재 널리 사용되는 데이터베이스 아키텍처입니다. 이 기술은 상대적으로 성숙되어 있으며 구성이 복잡하지 않습니다. 특히 로드가 많은 웹사이트의 경우 마스터-슬레이브 동기화를 효과적으로 수행할 수 있습니다. 데이터베이스 읽기 및 쓰기 압력. 이전에는 yii1을 사용할 때 마스터-슬레이브 데이터베이스 지원이 그리 편리하지 않았습니다. 여러 DB의 구성 요소를 작성한 다음 AR의 getDB에 해당 db를 반환하는 것뿐이었습니다. 이는 마스터-슬레이브 데이터베이스를 처리하는 데에도 사용할 수 있습니다.

구현 방법

Yii2는 이 문제를 해결했으며 코드에서 직접 처리할 수 있습니다.

PHP 코드

'db' =>[
   'class' => 'yii\db\Connection',
  
  // 配置主服务器
  'dsn' => 'dsn for master server',
  'username' => 'master',
  'password' => '',
  'charset' => 'utf8',
  'tablePrefix' => 'php_',//默认为空
  
  // 配置从服务器
  'slaveConfig' => [
    'username' => 'slave',
    'password' => '',
    'charset' => 'utf8',
   'tablePrefix' => 'php_',
    'attributes' => [
      // use a smaller connection timeout
      PDO::ATTR_TIMEOUT => 10,
    ],
    
  ],
];

정말 편리하지 않나요? 뿐만 아니라 슬레이브 서버 그룹도 구성할 수 있습니다:

PHP 코드

'db'=>[
  //...上面是一些标准配置
  'slaves' => [
    ['dsn' => 'dsn for slave server 1'],
    ['dsn' => 'dsn for slave server 2'],
    ['dsn' => 'dsn for slave server 3'],
    ['dsn' => 'dsn for slave server 4'],
  ], 
]

더욱 좋은 점은 메인 서버 역시 아래와 같이 문자 인코딩 세트, 테이블 등 다수의 메인 서버로 구성되어 있다는 점입니다. 접두사 및 기타 설정 위 내용을 참조하세요.

PHP 코드

'db'=>[
  // 配置主服务器
  'masterConfig' => [
    'username' => 'master',
    'password' => '',
    'attributes' => [
      // use a smaller connection timeout
      PDO::ATTR_TIMEOUT => 10,
    ],
  ],
  
  // 配置主服务器组
  'masters' => [
    ['dsn' => 'dsn for master server 1'],
    ['dsn' => 'dsn for master server 2'],
  ],
  //other ...slaves
];

정말 쉽습니다.

물론 더 쉽게 사용하고 싶다면 실제로 YII2의 AR을 사용해야 합니다. 코드를 변경할 필요가 없습니다. .


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경