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 커널
SQL 최적화 공성전
mysql 서버 최적화
다양한 매개변수 상수 설정
쿼리문 최적화
마스터-슬레이브 복제
소프트웨어 및 하드웨어 업그레이드
재해 복구 백업
sql 프로그래밍
mysql 최적화를 완료하려면 대기업에도 위 내용을 작성하는 전담 DBA가 있어야 합니다
이번에는 MySQL 5.5가 설치되어 있으며, 설치 환경은 CentOS 6.5
버전 다운로드입니다. 주소 공식 홈페이지 다운로드 주소
다운로드MySQL-Client 및 MySQL-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 | 启停相关脚本 |
[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
바이너리 로그 로그빈
마스터-슬레이브 복제
오류 로그 로그-오류
기본적으로 꺼져 있으며 심각한 경고 및 오류 메시지를 기록합니다. 매번 시작 및 종료 세부 정보 등
쿼리 로그 로그
기본적으로 꺼짐으로 설정되어 있으면 쿼리 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 파일
다른 데이터베이스와 비교하여 MySQL은 아키텍처가 약간 다르며 다양한 시나리오에 잘 적용할 수 있습니다. 스토리지 엔진의 아키텍처에 주로 반영되는 플러그인 스토리지 엔진 아키텍처는 쿼리 처리를 다른 시스템 작업과 데이터 저장 및 추출과 분리합니다. 이 아키텍처를 사용하면 비즈니스 요구 사항과 실제 요구 사항에 따라 적절한 스토리지 엔진을 선택할 수 있습니다.
데이터 저장 계층은 주로 원시 장치에서 실행되는 파일 시스템에 데이터를 저장하고 스토리지 엔진과의 상호 작용을 완료합니다.
스토리지 엔진 계층인 스토리지 엔진은 실제로 MySQL에서 데이터의 저장과 검색을 담당하며, 서버는 API를 통해 스토리지 엔진과 통신합니다. 다양한 스토리지 엔진에는 다양한 기능이 있으므로 실제 필요에 따라 선택할 수 있습니다. MyISAM과 InnoDB는 추후 소개 예정입니다
두 번째 계층 아키텍처는 주로 SQL 인터페이스 등 핵심 서비스 기능 대부분을 완성하고 캐시된 쿼리, SQL 분석 및 최적화를 완료하고 일부 구축 -함수에서 구현합니다. 프로시저, 함수 등과 같은 모든 교차 스토리지 엔진 기능도 이 계층에서 구현됩니다. 이 계층에서 서버는 쿼리를 구문 분석하고 해당 내부 구문 분석 트리를 생성하며 쿼리 테이블의 순서, 인덱스 사용 여부 등을 결정하는 등 해당 최적화를 완료하고 최종적으로 해당 실행 작업을 생성합니다. select 문인 경우 서버는 내부 캐시도 쿼리합니다. 캐시 공간이 충분히 크면 많은 수의 읽기 작업을 처리하는 환경에서 시스템 성능을 크게 향상시킬 수 있습니다.
최상위 계층은 로컬 양말 통신과 클라이언트/서버 도구를 기반으로 하는 대부분의 TCP/IP 유사 통신을 포함한 일부 클라이언트 및 연결 서비스입니다. 주로 일부 연결 처리, 권한 인증 및 관련 보안 솔루션을 완료합니다. 이 계층에는 인증을 통해 안전하게 접근하는 클라이언트에게 스레드를 제공하기 위해 스레드 풀(Thread Pool)이라는 개념이 도입되었습니다. SSL 기반 보안 링크도 이 계층에서 구현될 수 있습니다. 또한 서버는 안전하게 액세스하는 각 클라이언트에 대해 가지고 있는 운영 권한을 확인합니다.
1. 🎜>
4. 저장 계층
쿼리 설명
그러면 mysql은 기본적으로 BTREE 인덱스를 사용하며 일반적인 방향은 sql을 어떻게 다루든 적어도 현재로서는 mysql이 테이블에서 최대 하나의 인덱스만 사용한다는 것입니다.
보기 명령
show variables like '%storage_engine%';
mysql> show engines;
현재 MySQL에서 제공하는 스토리지 엔진이 무엇인지 확인하세요
MySQL 현재 기본 스토리지 엔진 보기:
MyISAM
과 InnoDB
알리바바와 타오바오 중 어느 것을 사용할 것인가
Percona는 MySQL 데이터베이스 서버에 맞게 개선되었으며, MySQL에 비해 기능 및 성능이 크게 향상되었습니다. 이 버전은 부하가 높은 조건에서 InnoDB의 성능을 향상시키고, DBA에게 매우 유용한 성능 진단 도구를 제공하며, 서버 동작을 제어하기 위한 더 많은 매개변수와 명령을 제공합니다.
회사에서는 xtradb
을 완전히 대체하고 성능과 동시성을 향상시킬 수 있는 innodb
이라는 새로운 스토리지 엔진을 구축했습니다. ,
대부분의 Alibaba mysql 데이터베이스는 실제로 percona의 프로토타입을 사용하여 수정합니다.
[관련 권장 사항]
3.위 내용은 데이터베이스 아키텍처 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!