> 데이터 베이스 > MySQL 튜토리얼 > 데이터베이스 아키텍처 소개

데이터베이스 아키텍처 소개

零下一度
풀어 주다: 2017-05-05 16:32:16
원래의
1566명이 탐색했습니다.

1. MySQL 소개

개요
  • MySQL은 스웨덴 MySQL AB 회사에서 개발한 관계형 데이터베이스 관리 시스템으로 현재 Oracle에 속해 있습니다.

  • MySQL은 모든 데이터를 하나의 큰 웨어하우스에 보관하는 대신 여러 테이블에 데이터를 보관하여 속도를 높이고 유연성을 향상시키는 관계형 데이터베이스 관리 시스템입니다.

  • Mysql은 오픈소스이므로 추가 비용을 지불할 필요가 없습니다.

  • Mysql은 대용량 데이터베이스를 지원합니다. 수천만 개의 레코드가 포함된 대규모 데이터베이스를 처리할 수 있습니다.

  • MySQL은 표준 SQL 데이터 언어 형식을 사용합니다.

  • Mysql은 여러 시스템에서 사용할 수 있으며 여러 언어를 지원합니다. 이러한 프로그래밍 언어에는 C, C++, Python, Java, Perl, PHP, 에펠, 루비 및 Tcl 등이 포함됩니다.

  • Mysql은 현재 가장 인기 있는 웹 개발 언어인 PHP를 훌륭하게 지원합니다.

  • MySQL은 5천만 개의 레코드를 포함하는 대규모 데이터베이스와 데이터 웨어하우스를 지원합니다. 32비트 시스템 테이블 파일은 최대 4GB를 지원하며, 64비트 시스템은 최대 8TB.

  • Mysql은 사용자 정의가 가능하며 GPL 프로토콜을 채택하여 소스 코드를 수정하여 자신만의 Mysql 시스템을 개발할 수 있습니다.

고급 MySQL에는 지식이 필요합니다
  • mysql 커널

  • SQL 최적화 공성전

  • mysql 서버 최적화

  • 다양한 매개변수 상수 설정

  • 쿼리문 최적화

  • 마스터-슬레이브 복제

  • 소프트웨어 및 하드웨어 업그레이드

  • 재해 복구 백업

  • sql 프로그래밍

  • mysql 최적화를 완료하려면 대기업에도 위 내용을 작성하는 전담 DBA가 있어야 합니다

2. MySQL Linux 버전 설치

  • 이번에는 MySQL 5.5가 설치되어 있으며, 설치 환경은 CentOS 6.5

  • 버전 다운로드입니다. 주소 공식 홈페이지 다운로드 주소

    • 다운로드MySQL-ClientMySQL-Server

    • downloads.skysql.com/archives/mysql-5.5/MySQL-server-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql - 5.5/MySQL-client-5.5.16-1.rhel4.i386.rpm

    • downloads.skysql.com/archives/mysql-5.5/MySQL-devel-5.5.16- 1 .rhel4.i386.rpm

  • 현재 시스템에 MySQL이 설치되어 있는지 확인

    • 쿼리 명령: rpm -qa|grep -i mysql

    • 삭제 명령: rpm -e --nodeps RPM包全名

  • mysql 서버 설치(팁 주의 )

    • 데이터베이스 아키텍처 소개

      비밀번호 프롬프트 설정

  • mysql 클라이언트 설치

  • MySQL 설치 중에 생성된 mysql 사용자 및 mysql 그룹 보기

    • # cat /etc/passwd | grep mysql

    • # cat /etc/group | grep mysql

  • mysql 서비스 시작 + 중지

    • 문자 집합 보기

    • 문자셋을 수정하고, 앞서 복사한 설정파일을 수정합니다. (상세 후속 코드)

    • MySQL 설치 위치

    • show variables like 'character%';

    • show variables like '%char%';

    • 데이터베이스 아키텍처 소개

      문자셋

    • 기본값은 클라이언트와 서버 모두 latin1 을 사용하면 코드가 깨집니다.

    • linux에서 설치 디렉터리 보기ps -ef|grep mysql

    • 현재 5.5 버전 복사: cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

    • 버전 5.6 cp /usr/share/mysql/my-default.cnf /etc/my.cnf

    • #chkconfig mysql on 자동 시작 설정

    • # chkconfig --list | grep mysql 자동 시작 설정 여부 확인

    • # /etc/init.d/mysql start

    • # /etc/init.d/mysql stop

    • 또는

    • #service mysql start

    • #service mysql stop

    • MySQL 시작을 확인하세요. 및 중지 상태: # ps -ef | grep mysql

    • 작업 시작 및 중지:

    • MySQL 자체 시작 서비스 설정

    • 구성 파일 위치 수정

    • 문자 집합 및 데이터 저장 경로 수정

路径 解释 备注
/var/lib/mysql/ mysql数据库文件的存放路径 /var/lib/mysql/atguigu.cloud.pid
/usr/share/mysql 配置文件目录 mysql.server命令及配置文件
/usr/bin 相关命令目录 mysqladmin mysqldump等命令
/etc/init.d/mysql 启停相关脚本

데이터베이스 아키텍처 소개

MySQL 설치 위치

[client]
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock

# 这一行需要设置字符集
default-character-set=utf8

# The MySQL server
[mysqld]
port = 3306

# 还有这三行
character_set_server=utf8
character_set_client=utf8
collation-server=utf8_general_ci

socket = /var/lib/mysql/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 8

[mysql]
no-auto-rehash
# 还有这一行
default-character-set=utf8
로그인 후 복사

3.Mysql 구성 파일

기본 구성 파일
  • 바이너리 로그 로그빈

    • 마스터-슬레이브 복제

    • 데이터베이스 아키텍처 소개


  • 오류 로그 로그-오류

    • 기본적으로 꺼져 있으며 심각한 경고 및 오류 메시지를 기록합니다. 매번 시작 및 종료 세부 정보 등

  • 쿼리 로그 로그

    • 기본적으로 꺼짐으로 설정되어 있으면 쿼리 SQL 문을 기록합니다. 로그를 기록하면 시스템 리소스

  • 데이터 파일

    • windows

      도 소비하므로 mysql의 전반적인 성능이 저하됩니다.
    • Linux:

    • D:devSoftMySQLServer5.5data 디렉터리에서 여러 라이브러리를 선택할 수 있습니다

    • 기본 경로 #cd /var/lib/mysql/

    • 들어가기 전 현재 시스템의 라이브러리를 모두 살펴보세요#ls -1F | grep ^d

    • 두 시스템

    • frm 파일: 테이블 구조 저장

    • myd 파일: 테이블 데이터 저장

    • myi 파일: 테이블 인덱스 저장

    • Windows 구성 방법 : my.ini 파일

    • Linux: /etc/my.cnf 파일

4. Mysql 논리 아키텍처

개요
  • 다른 데이터베이스와 비교하여 MySQL은 아키텍처가 약간 다르며 다양한 시나리오에 잘 적용할 수 있습니다. 스토리지 엔진의 아키텍처에 주로 반영되는 플러그인 스토리지 엔진 아키텍처는 쿼리 처리를 다른 시스템 작업과 데이터 저장 및 추출과 분리합니다. 이 아키텍처를 사용하면 비즈니스 요구 사항과 실제 요구 사항에 따라 적절한 스토리지 엔진을 선택할 수 있습니다.

    • 데이터 저장 계층은 주로 원시 장치에서 실행되는 파일 시스템에 데이터를 저장하고 스토리지 엔진과의 상호 작용을 완료합니다.

    • 스토리지 엔진 계층인 스토리지 엔진은 실제로 MySQL에서 데이터의 저장과 검색을 담당하며, 서버는 API를 통해 스토리지 엔진과 통신합니다. 다양한 스토리지 엔진에는 다양한 기능이 있으므로 실제 필요에 따라 선택할 수 있습니다. MyISAM과 InnoDB는 추후 소개 예정입니다

    • 두 번째 계층 아키텍처는 주로 SQL 인터페이스 등 핵심 서비스 기능 대부분을 완성하고 캐시된 쿼리, SQL 분석 및 최적화를 완료하고 일부 구축 -함수에서 구현합니다. 프로시저, 함수 등과 같은 모든 교차 스토리지 엔진 기능도 이 계층에서 구현됩니다. 이 계층에서 서버는 쿼리를 구문 분석하고 해당 내부 구문 분석 트리를 생성하며 쿼리 테이블의 순서, 인덱스 사용 여부 등을 결정하는 등 해당 최적화를 완료하고 최종적으로 해당 실행 작업을 생성합니다. select 문인 경우 서버는 내부 캐시도 쿼리합니다. 캐시 공간이 충분히 크면 많은 수의 읽기 작업을 처리하는 환경에서 시스템 성능을 크게 향상시킬 수 있습니다.

    • 최상위 계층은 로컬 양말 통신과 클라이언트/서버 도구를 기반으로 하는 대부분의 TCP/IP 유사 통신을 포함한 일부 클라이언트 및 연결 서비스입니다. 주로 일부 연결 처리, 권한 인증 및 관련 보안 솔루션을 완료합니다. 이 계층에는 인증을 통해 안전하게 접근하는 클라이언트에게 스레드를 제공하기 위해 스레드 풀(Thread Pool)이라는 개념이 도입되었습니다. SSL 기반 보안 링크도 이 계층에서 구현될 수 있습니다. 또한 서버는 안전하게 액세스하는 각 클라이언트에 대해 가지고 있는 운영 권한을 확인합니다.

    • 데이터베이스 아키텍처 소개


    • 1. 🎜>

    • 2. 서비스 계층

    • 3. 🎜>

      4. 저장 계층

    • 쿼리 설명

    첫 번째, 쿼리 프로세스 mysql 대략적으로:
  • mysql 클라이언트는 프로토콜을 통해 mysql 서버와 연결을 설정하고 쿼리 문을 보낸 다음 먼저 쿼리 캐시를 확인하고, 히트하면 반환합니다. 그렇지 않으면 문을 파싱

    • 문이 올바르게 작성되었는지 확인한 후 쿼리 최적화(인덱스 사용 여부 등) 등 일련의 전처리 과정이 있습니다. 스캐닝이 불가능한 조건이면 조기 종료) 쿼리 생성 Plan을 수행하면 쿼리 엔진이 시작되고 쿼리 실행이 시작되며, 기본 스토리지 엔진에서 API를 호출해 데이터를 얻어 최종적으로 클라이언트에 반환한다. 데이터를 저장하는 방법과 데이터를 검색하는 방법은 모두 스토리지 엔진과 관련이 있습니다.
    • 그러면 mysql은 기본적으로 BTREE 인덱스를 사용하며 일반적인 방향은 sql을 어떻게 다루든 적어도 현재로서는 mysql이 테이블에서 최대 하나의 인덱스만 사용한다는 것입니다.

5. MySQL 스토리지 엔진

  • 보기 명령

    • show variables like '%storage_engine%';

    • mysql> show engines;

    • 현재 MySQL에서 제공하는 스토리지 엔진이 무엇인지 확인하세요

    • MySQL 현재 기본 스토리지 엔진 보기:

    • 데이터베이스 아키텍처 소개

      기본 스토리지 엔진

  • MyISAMInnoDB

    • 데이터베이스 아키텍처 소개

      두 가지 엔진 비교

  • 알리바바와 타오바오 중 어느 것을 사용할 것인가

    • 데이터베이스 아키텍처 소개


    • Percona는 MySQL 데이터베이스 서버에 맞게 개선되었으며, MySQL에 비해 기능 및 성능이 크게 향상되었습니다. 이 버전은 부하가 높은 조건에서 InnoDB의 성능을 향상시키고, DBA에게 매우 유용한 성능 진단 도구를 제공하며, 서버 동작을 제어하기 위한 더 많은 매개변수와 명령을 제공합니다.

    • 회사에서는 xtradb을 완전히 대체하고 성능과 동시성을 향상시킬 수 있는 innodb이라는 새로운 스토리지 엔진을 구축했습니다. ,

    • 대부분의 Alibaba mysql 데이터베이스는 실제로 percona의 프로토타입을 사용하여 수정합니다.

    [관련 권장 사항]

    1. 무료 mysql 온라인 동영상 튜토리얼

    2.MySQL 최신 매뉴얼 튜토리얼

    3.

    불린 교육 Yan Shiba mysql 소개 영상 튜토리얼

위 내용은 데이터베이스 아키텍처 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿