집 >데이터 베이스 >MySQL 튜토리얼 >MySQL 고급 지식 아키텍처 소개
mysql 동영상 튜토리얼 칼럼에서는 MySQL 고급 지식의 구조를 소개합니다
권장(무료): mysql 동영상 튜토리얼
1.
개요완전한 mysql 최적화에는 깊은 기반이 필요합니다. 대기업에도 위의
을 작성하는 전담 DBA가 있습니다. 2. MySQL Linux 버전 설치
rpm -qa|grep -i mysql
rpm -qa|grep -i mysql
rpm -e --nodeps RPM包全名
# cat /etc/passwd | grep mysql
# cat /etc/group | grep mysql
# ps -ef | grep mysql
# /etc/init.d/mysql start
# /etc/init.d/mysql stop
#service mysql start
#service mysql stop
#chkconfig mysql on
设置自动启动# chkconfig --list | grep mysql
检查是否设置了自动启动cp /usr/share/mysql/my-huge.cnf /etc/my.cnf
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
show variables like 'character%';
show variables like '%char%';
삭제 명령: rpm -e --nodeps RPM 패키지 전체 이름
mysql 서버 설치(
)
# cat /etc/passwd | grep mysql
# cat /etc/group | /code><li>
<p class="image-caption"> </p>🎜mysql 서비스 시작 + 중지🎜🎜MySQL 시작 및 중지 상태 보기: <code># ps -ef | grep mysql
🎜🎜작업 시작 및 중지:🎜🎜# /etc /init.d/mysql start
🎜🎜# /etc/init.d/mysql stop
🎜🎜 또는 🎜🎜#service mysql start
🎜🎜#service mysql stop🎜🎜🎜🎜MySQL 자동 시작 서비스 설정🎜🎜<code>#chkconfig mysql on
자동 시작 설정🎜🎜# chkconfig --list |
자동 시작이 설정되어 있는지 확인 시작 🎜🎜🎜🎜구성 파일 위치 수정🎜🎜현재 🎜5.5 버전 복사🎜: cp /usr/share/mysql/my-huge.cnf /etc/my .cnf
🎜🎜🎜5.6 버전🎜 cp /usr/share/mysql/my-default.cnf /etc/my.cnf
🎜🎜🎜🎜문자셋 및 데이터 저장 경로 수정🎜 🎜문자 집합 보기🎜🎜'문자%'와 같은 변수 표시
🎜🎜 '%char%'와 같은 변수 표시
🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜🎜 문자 세트 🎜ps -ef|grep mysql
Path | 설명 | Remarks |
---|---|---|
/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
3, Mysql 구성 파일
#cd /var/lib/mysql/
#ls -1F | grep ^d
#cd /var/lib/mysql/
#ls -1F | grep ^d
mysql> show engines;
show variables like '%storage_engine%';
🎜🎜🎜🎜🎜1. 연결 레이어 🎜🎜🎜최상위 레이어는 로컬 양말 통신 및 대부분의 클라이언트 기반을 포함한 일부 클라이언트 및 연결 서비스입니다. 클라이언트/서버 도구로 구현된 tcp/ip와 유사한 통신입니다. 주로 일부 연결 처리, 권한 인증 및 관련 보안 솔루션을 완료합니다. 이 계층에는 인증을 통해 안전하게 접근하는 클라이언트에게 스레드를 제공하기 위해 스레드 풀(Thread Pool)이라는 개념이 도입되었습니다. SSL 기반 보안 링크도 이 계층에서 구현될 수 있습니다. 또한 서버는 안전하게 액세스하는 각 클라이언트에 대해 가지고 있는 운영 권한을 확인합니다. 🎜🎜🎜🎜🎜2. 서비스 계층 🎜🎜🎜두 번째 계층 아키텍처는 주로 SQL 인터페이스와 같은 대부분의 핵심 서비스 기능을 완료하고 캐시된 쿼리, SQL 분석 및 최적화, 일부 내장 기능의 실행을 완료합니다. 프로시저, 함수 등과 같은 모든 교차 스토리지 엔진 기능도 이 계층에서 구현됩니다. 이 계층에서 서버는 쿼리를 구문 분석하고 해당 내부 구문 분석 트리를 생성하며 쿼리 테이블의 순서, 인덱스 사용 여부 등을 결정하는 등 해당 최적화를 완료하고 최종적으로 해당 실행 작업을 생성합니다. select 문인 경우 서버는 내부 캐시도 쿼리합니다. 캐시 공간이 충분히 크면 많은 수의 읽기 작업을 처리하는 환경에서 시스템 성능을 크게 향상시킬 수 있습니다. 🎜🎜🎜🎜🎜3. 엔진 계층 🎜🎜🎜스토리지 엔진은 실제로 MySQL에서 데이터 저장 및 추출을 담당합니다. 다양한 스토리지 엔진에는 다양한 기능이 있으므로 실제 필요에 따라 선택할 수 있습니다. MyISAM과 InnoDB는 추후에 소개될 예정입니다🎜🎜🎜🎜🎜4. 스토리지 레이어🎜🎜🎜데이터 스토리지 레이어는 주로 원시 장치에서 실행되는 파일 시스템에 데이터를 저장하고 스토리지 엔진과의 상호 작용을 완료합니다. 🎜🎜🎜🎜🎜🎜🎜쿼리 설명🎜🎜🎜우선 mysql 쿼리 프로세스는 대략 다음과 같습니다. 🎜🎜mysql 클라이언트는 프로토콜을 통해 mysql 서버와 연결을 설정하고 쿼리 문을 보내고 먼저 쿼리 캐시를 확인합니다. 그렇지 않으면 문 구문 분석🎜🎜에는 문이 올바르게 작성되었는지 확인한 다음 쿼리 최적화(예: 인덱스 스캔을 사용할지 여부, 불가능한 조건, 조기 종료) 쿼리 계획 생성 후 엔진 쿼리 시작, 쿼리 실행 시작, 기본 스토리지 엔진에서 API를 호출하여 데이터를 얻은 후 최종적으로 클라이언트에 반환합니다. 데이터를 저장하는 방법과 데이터를 검색하는 방법은 모두 스토리지 엔진과 관련이 있습니다. 🎜🎜그러면 mysql은 기본적으로 BTREE 인덱스를 사용하며, 일반적인 방향은 아무리 sql을 다루더라도 적어도 현재로서는 mysql이 테이블에서 최대 하나의 인덱스만 사용한다는 것입니다. 🎜🎜🎜🎜
mysql> showengine;
🎜🎜🎜🎜보세요 MySQL의 현재 기본 스토리지 엔진: 🎜🎜'%storage_engine%'과 같은 변수 표시;
🎜🎜🎜🎜🎜🎜🎜기본 스토리지 엔진🎜MyISAM
MyISAM
和InnoDB
xtradb
完全可以替代innodb
및 InnoDB
innodb
🎜를 완전히 대체할 수 있고 성능과 동시성 면에서 더 나은 🎜xtradb
🎜라는 새로운 스토리지 엔진을 만들었습니다. 🎜🎜Alibaba 대부분의 mysql 데이터베이스 실제로 수정하여 페르코나 프로토타입을 사용해보세요🎜🎜🎜🎜위 내용은 MySQL 고급 지식 아키텍처 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!