>  기사  >  데이터 베이스  >  mysql8.0과 mysql5.7의 차이점은 무엇입니까?

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

青灯夜游
青灯夜游원래의
2020-11-23 13:53:5437466검색

차이점: mysql8.0의 인덱스는 숨겨지고 표시될 수 있습니다. 인덱스가 숨겨져 있으면 쿼리 최적화 프로그램에서 사용되지 않습니다. 2. Mysql8.0에는 새로운 "SET PERSIST" 명령이 있습니다. 0부터 시작하면 데이터베이스의 기본 인코딩이 모든 이모티콘 문자를 포함하는 utf8mb4로 변경됩니다.

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

(추천 튜토리얼: mysql 비디오 튜토리얼)

mysql8.0과 mysql5.7의 차이점은

1입니다.

Mysql은 버전 5.7부터 NoSQL을 제공합니다. 기능, 이 부분은 8.0에서 일부 수정되었으나 실제로는 거의 사용되지 않습니다
mysql8.0과 mysql5.7의 차이점은 무엇입니까?

2. 숨김 색인

숨김 색인 기능은 8.0에서 성능 디버깅에 매우 유용합니다. 인덱스가 숨겨져 있으면 쿼리 최적화 프로그램에서 사용되지 않습니다
mysql8.0과 mysql5.7의 차이점은 무엇입니까?
이는 인덱스를 숨긴 다음 데이터베이스에 미치는 영향을 관찰할 수 있다는 의미입니다. 성능이 떨어지면 인덱스가 효과적이라는 의미이므로 다음을 수행할 수 있습니다. "restore it" "Show"; 데이터베이스 성능에 변화가 없으면 인덱스가 너무 커서 삭제할 수 있다는 의미입니다.

인덱스를 숨기는 구문

ALTER TABLE t ALTER INDEX i INVISIBLE;

표시를 복원하는 구문 인덱스는 다음과 같습니다.

ALTER TABLE t ALTER INDEX i VISIBLE;

인덱스가 숨겨진 경우 show index 명령의 출력 요약에서 인덱스의 표시 속성 값이 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.0과 mysql5.7의 차이점은 무엇입니까?
학급 규모를 작은 것부터 큰 것까지 순위를 지정하려면 다음과 같이 창 기능을 사용할 수 있습니다.
mysql8.0과 mysql5.7의 차이점은 무엇입니까?
참고: w라는 이름의 창 여기에서 stu_count 필드를 정렬한 다음 select 절의 w에 대해 Rank() 메서드를 실행하고 결과를 순위 필드로 출력한다고 규정하여 여기에 생성됩니다.
이 기능은 Oracle11g의 새로운 기능이기도 하며, 최적화에서도 매우 중요한 역할을 합니다.

더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.