MySQL에서 테이블 또는 데이터베이스에 대한 인덱스 표시
- MySQL의 인덱스는 무엇입니까
- MySQL에서 인덱스의 중요성
-
SHOW INDEXES
를 사용하여 MySQL에서 테이블 또는 데이터베이스의 모든 인덱스 나열 -
SELECT DISTINCT
를 사용하여 MySQL의 스키마(데이터베이스)에서 모든 테이블에 대한 모든 인덱스를 나열합니다. -
STATISTICS
테이블을 사용하여 MySQL의 모든 스키마(데이터베이스)에서 모든 테이블에 대한 모든 인덱스 나열
오늘의 기사는 MySQL에서 테이블 또는 데이터베이스에 대한 인덱스를 표시하는 방법을 교육합니다. 데이터베이스 또는 모든 데이터베이스 내의 하나 또는 여러 테이블에서 인덱스를 가져오는 방법을 배웁니다.
SHOW INDEXES
, SHOW EXTENDED INDEX
, SELECT DISTINCT
명령 및 STATISTICS
테이블을 사용하여 인덱스를 가져옵니다.
MySQL의 인덱스는 무엇입니까
데이터베이스 활동의 성능을 향상시키는 데 사용할 수 있는 B-Tree와 같은 데이터베이스 구조를 인덱스라고 합니다. 데이터베이스 내의 테이블에는 해당 특정 테이블과 연결된 하나 이상의 인덱스가 있을 수 있습니다.
인덱스는 여러 열에서 필요한 데이터를 검색하여 MySQL 쿼리의 효율성을 높입니다. 지정된 MySQL 쿼리는 MySQL에서 인덱싱 사용을 생략하는 경우 대상 데이터를 얻기 위해 테이블의 각 행(레코드)을 검사합니다.
고유 키 또는 기본 키가 있는 테이블을 생성할 때마다 클러스터형 인덱스라고 하는 PRIMARY
라는 필드 식을 사용하여 특수 인덱스가 자동으로 생성됩니다.
PRIMARY
를 제외한 모든 인덱스는 보조 인덱스입니다. 클러스터되지 않은 인덱스라고 부를 수 있습니다.
예를 들어 students
테이블이 있고 ID
열에 인덱스가 생성됩니다. 여기에서 인덱스에는 목록의 모든 값이 해당 값을 갖는 각 테이블(여기서는 students
)의 레코드에 대한 참조와 함께 제공되는 테이블의 정렬된 학생 ID 값 목록이 포함됩니다.
다음은 인덱스가 무엇인지에 대한 데모입니다.
MySQL에서 인덱스의 중요성
다음 쿼리를 사용하여 인덱싱된 테이블과 인덱싱되지 않은 테이블을 검색하는 방법을 관찰하기 위해 다음 두 가지 시각적 프레젠테이션을 살펴보겠습니다.
SELECT * FROM students WHERE Gender = 'Male'
인덱스화되지 않은 테이블 검색:
인덱싱된 테이블 검색:
인덱스는 테이블의 모든 행을 헤매지 않고 대상 데이터만 검색하는 데 도움이 됩니다.
SHOW INDEXES
를 사용하여 MySQL에서 테이블 또는 데이터베이스의 모든 인덱스 나열
다음 쿼리를 사용하여 특정 테이블 또는 MySQL 데이터베이스에서 인덱스 목록을 가져올 수 있습니다.
테이블에서 인덱스 표시:
SHOW INDEXES FROM tableName;
위의 쿼리는 use databaseName;
을 통해 사용할 현재 데이터베이스의 지정된 테이블에서 모든 인덱스를 나열합니다. 질문.
데이터베이스를 사용하지 않는 경우 다음 쿼리를 사용하여 테이블의 모든 인덱스를 가져올 수 있습니다.
SHOW INDEX FROM tableName FROM databaseName;
또는 다음과 같은 방법으로 사용할 수 있습니다.
SHOW INDEXES FROM tableName IN databaseName;
KEYS
및 INDEX
는 INDEXES
의 동의어임을 기억하십시오. 마찬가지로 IN
은 FROM
의 동의어입니다. 따라서 SHOW INDEXES
에서 이러한 동의어를 사용할 수 있습니다.
# The queries below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW INDEX IN tableName FROM databaseName;
또는
# The queries given below can be used alternatively,
# and produce the same results.
SHOW INDEXES FROM tableName IN databaseName;
SHOW KEYS FROM tableName IN databaseName;
우리는 데이터베이스 개발자로서 생성한 테이블에서 인덱스 목록을 가져오는 다양한 방법을 배웠습니다. 다음 쿼리를 사용하여 데이터베이스 개발자와 데이터베이스 자체가 만든 모든 인덱스를 가져올 수 있습니다.
SHOW EXTENDED INDEX from databaseName.tableName;
SELECT DISTINCT
를 사용하여 MySQL의 스키마(데이터베이스)에서 모든 테이블에 대한 모든 인덱스를 나열합니다.
다음 쿼리를 사용하여 특정 데이터베이스의 모든 테이블에 대한 모든 인덱스 목록을 가져올 수 있습니다. INFORMATION_SCHEMA
에서 STATISTICS
테이블을 사용할 수 있습니다.
특정 스키마 내의 모든 테이블에 대한 모든 인덱스 나열:
# In the following query, you don't have to change anything except
# the value of `TABLE_SCHEMA` to get the table name accompanied
# with all indexes in that table.
SELECT DISTINCT
TABLE_NAME,
INDEX_NAME
FROM INFORMATION_SCHEMA.STATISTICS
WHERE TABLE_SCHEMA = 'your_schema_name';
STATISTICS
테이블을 사용하여 MySQL의 모든 스키마(데이터베이스)에서 모든 테이블에 대한 모든 인덱스 나열
다음 쿼리를 사용하여 스키마(데이터베이스라고도 함)의 모든 테이블에 대한 모든 인덱스에 액세스할 수 있습니다.
USE INFORMATION_SCHEMA;
SELECT * FROM STATISTICS;