> 데이터 베이스 > MySQL 튜토리얼 > mysql의 일부 고급 사용법

mysql의 일부 고급 사용법

亚连
풀어 주다: 2019-01-30 15:26:07
원래의
5883명이 탐색했습니다.

테이블 생성 명령문, 간단한 sql 명령문 ​​등 Mysql의 기본 작업을 마스터하면 mysql 자체에 대한 일부 구성 작업을 수행할 수도 있고 심지어 Mysql을 최적화할 수도 있습니다. 더 고급 mysql 지식을 보려면 PHP 중국어 웹사이트 mysql tutorial 채널을 방문하세요.

1.Mysql 구성 파일.

Windows에서는 my.ini 파일입니다:

1) log-bin: 마스터-슬레이브 복제에 사용되는 마스터-슬레이브 복제의 로그 파일을 나타냅니다.

2), log-error="SO3JFYNN8EW6GMO.err": 오류 로그를 나타냅니다.

3), server-id=1: 이 머신의 일련번호가 1임을 나타냅니다.

4), datadir=D:/mysql5.7/Data: 데이터베이스 정보가 저장되는 디렉터리,

2 mysql 아키텍처는 위에서 아래로 4개의 레이어로 구분됩니다:
1), 연결 레이어: 접속처리, 인증인증, 관련 보안 솔루션을 제공합니다.

2), 서비스 계층: SQL 최적화, 분석, 캐싱 및 기타 기능을 완료합니다.

3) 엔진 레이어: 데이터 저장 및 추출을 담당합니다.

4) 저장 계층: 데이터 저장 계층은 주로 파일 시스템에 데이터를 저장하고 엔진과의 상호 작용을 완료합니다.

3.mysql 엔진

1) 사용된 엔진을 확인하세요.

show engins 또는 show

MYISAM과 INNODB의 비교

기본 및 외래 키 값 쌍을 지원하지 않습니다.

트랜잭션을 지원하지 않습니다. 지원

높은 동시성에 적합하지 않은 테이블 잠금, 높은 동시성에 적합

인덱스만 캐시하고 메모리 요구 사항이 높음

테이블 공간이 작습니다. 초점은 성능에 있으며, 더 많은 경우 핵심 문제에 초점을 맞춘 상황에 적합합니다.

4. mysql 성능 최적화 저하 원인

1), 잘못 작성된 쿼리문

2), 인덱스 오류

                                                                           user(name)

에 idx_user_name 색인 생성

                                                                                누구 누구? who who's who who who who who who who's, idx_using, 인덱스 생성 idx_user_name_email on, user(name,email)

3) 쿼리에 조인이 너무 많음

4), 서버 튜닝 및 다양한 매개변수

5, mysql 실행 순서

머신이 읽기부터 시작됩니다.

1) 내부 연결 e SELECT*From Tablea A Inner Join Tableb B on A.Key = B.Key.接2), 왼쪽 외부 연결 、 Select*from tablea a 왼쪽 작업 테이블b b on a.Key = b.Key

B가 아닌 경우 NULL을 사용하여 완료합니다.

3) 오른쪽 외부 조인

                                                                                         사용      null 사용         to Some

선택 *From Tablea A Left Join Tableb B on A.Key = B.Key WHERE B.Key Is Null

A. of.连5), 외부에서 바로 연결, tablea에서 오른쪽 작업 테이블b b b에서 왼쪽 테이블의 일부 제거

a.Key = b.Key 여기서 a.Key는 null

6), 전체 연결(둘 모두에서 사용할 수 있음) . 추가) UNION은

Select *from tablea a left tableb b on a.Key = b.Key Union

(select *from tablea a right job tableb b)

7) 가운데 비어있는 부분이 나옴

A.key=B.key에서 *tableA A를 왼쪽으로 조인 tableB B를 선택합니다. 여기서 B.key는 null Union

(*from tableA A를 선택하고 A.key=B.key에서 tableB B를 오른쪽으로 조인합니다. where A.key is null)

6. 인덱스란 무엇입니까? 1) 인덱스는 검색 효율성을 향상시키는 데이터 구조입니다.速 순서가 좋은 데이터 구조를 빠르게 찾아보세요.

데이터베이스는 특정 알고리즘을 만족하는 데이터 구조를 유지하므로 이러한 데이터 구조에 고급 슈퍼 검색 알고리즘을 구현할 수 있습니다.

BTREE 인덱스(특별 지정 없음)

자주 삭제되는 필드는 인덱스 구축에 적합하지 않습니다.

2), 장점

데이터 검색 효율성 향상, 데이터베이스의 IO 비용 절감


인덱스 컬럼을 통한 데이터 정렬, 데이터 정렬 비용 절감, CPU 소모 감소

3), 단점

인덱스도 테이블이 디스크 공간을 차지합니다.

테이블을 업데이트할 때 인덱스를 유지해야 하므로 업데이트 효율성이 떨어집니다.

인덱싱은 효율성을 높이는 요소일 뿐이고, 인덱스를 구축하려면 시간과 노력이 필요합니다.

4) 단일 값 인덱스에는 하나의 열만 포함되며 테이블에는 여러 개의 단일 값 인덱스가 있을 수 있습니다.

5) 고유 인덱스, 인덱스 열의 값은 고유해야 하며 비어 있을 수 있습니다.

6), 여러 열을 포함하는 복합 인덱스입니다.

7), 인덱스 관련 작업

사용자(이름)에 인덱스 idx_user_name 생성

사용자 변경 (이름)에 인덱스 idx_user_name 추가

사용자의 인덱스 표시

사용자의 인덱스 idx_user_name 삭제

8), 인덱스 구조

해시 인덱스

전체 텍스트 인덱스

R-트리 인덱스

BTree 인덱스:

7 어떤 상황에서 인덱스를 만들어야 할까요:

1) 메인 빌더가 자동으로 고유 인덱스를 생성합니다

2) 쿼리 조건으로 자주 사용되는 필드는 인덱싱해야 하며(

3) 쿼리의 다른 테이블과 연결된 필드는 외부 관계에 의해 인덱싱되어야 합니다.

4) 자주 업데이트되는 필드는 인덱스 생성에 적합하지 않습니다.

5) where 조건에 사용되지 않는 필드에 대해서는 인덱스를 생성합니다.

6) 단일 또는 결합 인덱스를 선택하면 높은 동시성에서 복합 인덱스를 생성하는 경향이 있습니다.

7) 쿼리에서 정렬된 필드를 인덱스에 따라 액세스하면 효율성이 향상됩니다

8) , 쿼리의 통계 또는 그룹화 필드

8. 인덱스를 생성할 필요가 없는 경우:

1) 테이블 레코드가 너무 적음

2) 자주 추가되거나 삭제되는 테이블

3) 중복된 데이터가 있고 균일하게 분포된 필드입니다.

9. 성능 분석:

mysql 쿼리 최적화 프로그램

위 내용은 제가 요약한 MySQL의 고급 지식입니다.

관련 기사:

MySQL 기본 구문

마스터 PHP MySQL Where 절

위 내용은 mysql의 일부 고급 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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