>데이터 베이스 >MySQL 튜토리얼 >Mysql8과 mysql5.7의 차이점은 무엇입니까?

Mysql8과 mysql5.7의 차이점은 무엇입니까?

醉折花枝作酒筹
醉折花枝作酒筹앞으로
2021-06-07 09:34:544381검색

이 글에서는 Mysql8과 mysql5.7의 차이점을 소개하겠습니다. 도움이 필요한 친구들이 모두 참고할 수 있기를 바랍니다.

Mysql8과 mysql5.7의 차이점은 무엇입니까?

1. NoSql 저장소

Mysql은 5.7 버전부터 NoSQL 저장소 기능을 제공하고 있습니다. 이 부분은 8.0에서 수정되었으나 실제로는 거의 사용되지 않는 부분입니다

Mysql8과 mysql5.7의 차이점은 무엇입니까?

2. 인덱스 기능은 성능 디버깅에 매우 유용합니다. 인덱스가 숨겨지면 쿼리 최적화 프로그램에서 사용되지 않습니다. 즉, 인덱스를 숨길 수 있습니다. 그런 다음 데이터베이스에 미치는 영향을 관찰하십시오. 성능이 떨어지면 인덱스가 유효하다는 의미이므로 데이터베이스 성능에 변화가 없으면 "디스플레이를 복원"하면 인덱스가 너무 커서 그럴 수 있음을 의미합니다. 삭제됨

인덱스를 숨기는 구문

ALTER TABLE t ALTER INDEX i INVISIBLE;

인덱스 표시를 복원하는 구문은 다음과 같습니다.Mysql8과 mysql5.7의 차이점은 무엇입니까?

ALTER TABLE t ALTER INDEX i VISIBLE;

인덱스가 숨겨지면 show index 명령의 출력 요약에서 표시되는 속성 값을 볼 수 있습니다. the index is No

** 참고: **인덱스가 숨겨지면 해당 내용은 일반 인덱스처럼 실시간으로 업데이트됩니다. 이 기능 자체는 인덱스를 오랫동안 숨기는 경우 특히 최적화 및 디버깅에 사용됩니다. 시간이 지나면 데이터에 영향을 미치는 삽입, 업데이트 및 삭제 기능이 있기 때문에 종료할 수도 있습니다

3. 지속성 설정

MySQL 설정은 SET GLOBAL 명령을 통해 런타임에 변경할 수 있지만 이 변경 사항은 일시적으로 적용되며 다음에 구성 파일을 읽을 때 데이터베이스가 재설정됩니다.

MySQL 8에는 SET PERSIST 명령이 추가되었습니다. 예:

SET PERSIST max_connections = 500;

MySQL은 이 명령의 구성을 데이터 디렉터리의 mysqld-auto.cnf 파일에 저장하고 다음에 시작할 때 파일을 읽습니다. 기본 구성 파일을 재정의하는 구성입니다.

4.UTF-8 인코딩

MySQL 8부터 데이터베이스의 기본 인코딩이 모든 이모티콘 문자를 포함하는 utf8mb4로 변경됩니다. 수년 동안 우리는 MySQL을 사용할 때 기본 라틴어를 변경하는 것을 잊어버리고 잘못된 코드 문제가 발생할 것을 두려워하여 코딩에 주의를 기울였습니다. 이제부터는 더 이상 걱정하지 마세요.

5. 공통 테이블 표현식

복잡한 쿼리는 포함된 테이블을 사용합니다. 예:

SELECT t1.*, t2.* FROM
	 (SELECT col1 FROM table1) t1,
	 (SELECT col2 FROM table2) t2;

CTE를 사용하면 다음과 같이 작성할 수 있습니다.

	WITH
	 t1 AS (SELECT col1 FROM table1),
	 t2 AS (SELECT col2 FROM table2)
	SELECT t1.*, t2.* 
	FROM t1, t2;

이렇게 하면 더 계층적이고 지역적으로 보입니다. 더 명확하고 알기 쉽습니다. 변경 시 어떤 부분을 변경해야 하는지.

이 기능은 많은 보고 시나리오에서 매우 유용하며 mysql 최적화의 매우 중요한 기능이기도 합니다.

1.235 창 함수

MySQL의 가장 비판적인 기능 중 하나는 순위() 함수가 없다는 것입니다. 쿼리에서 순위를 지정해야 하는 경우 @ 변수를 직접 작성해야 합니다. 그러나 8.0부터 MySQL에는 여러 가지 새로운 쿼리 방법을 구현하는 데 사용할 수 있는 창 함수라는 새로운 개념이 추가되었습니다.

윈도우 함수는 SUM(), COUNT() 등의 집계 함수와 약간 비슷하지만 다중 행 쿼리 결과를 하나의 행으로 병합하지 않고 결과를 다시 여러 행에 넣습니다. 즉, 창 함수에는 GROUP BY가 필요하지 않습니다.

"학급의 학생 수" 테이블이 있다고 가정합니다.

학급 규모를 소규모에서 대규모로 순위를 지정하려면 다음과 같이 창 기능을 사용할 수 있습니다.

Mysql8과 mysql5.7의 차이점은 무엇입니까?설명: 여기 w window라는 테이블을 생성하고 stu_count 필드를 정렬한 다음 select 절의 w에 대해 Rank() 메서드를 실행하고 그 결과를 순위 필드로 출력하도록 규정했습니다.

이 기능은 Oracle11g의 새로운 기능이기도 하며, 최적화에서도 매우 중요한 역할을 합니다.

관련 추천: "Mysql8과 mysql5.7의 차이점은 무엇입니까?mysql 튜토리얼

"

위 내용은 Mysql8과 mysql5.7의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제