Loading...
MySQL 9.5 Reference Manual 9.5의 1.2.2 The Main Features of MySQL의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
이 섹션에서는 MySQL Database Software의 몇 가지 중요한 특성에 대해 설명합니다. 대부분의 측면에서, 이 로드맵은 MySQL의 모든 버전에 적용됩니다. 특정 버전 계열별로 MySQL에 도입되는 기능에 대한 정보는 해당 Manual의 “In a Nutshell” 섹션을 참조하십시오:
MySQL 8.4: What Is New in MySQL 8.4 since MySQL 8.0
MySQL 8.0: What Is New in MySQL 8.0
MySQL 5.7: What Is New in MySQL 5.7
C와 C++로 작성되었습니다.
다양한 컴파일러에 대해 폭넓게 테스트되었습니다.
여러 다른 플랫폼에서 동작합니다.
https://www.mysql.com/support/supportedplatforms/database.html를 참조하십시오.
이식성을 위해 CMake를 사용하여 구성됩니다.
Purify(상용 메모리 누수 감지기)뿐만 아니라, GPL 도구인 Valgrind( https://valgrind.org/)로도 테스트되었습니다.
독립적인 모듈을 사용하는 다층 서버 설계를 사용합니다.
커널 스레드를 사용하여 완전히 멀티스레드가 되도록 설계되어, 사용 가능한 경우 여러 CPU를 쉽게 사용할 수 있습니다.
트랜잭션 및 비트랜잭션 스토리지 엔진을 제공합니다.
인덱스 압축이 적용된 매우 빠른 B-트리 디스크 테이블(MyISAM)을 사용합니다.
다른 스토리지 엔진을 비교적 쉽게 추가할 수 있도록 설계되었습니다. 이는 사내 데이터베이스에 대한 SQL 인터페이스를 제공하려는 경우에 유용합니다.
매우 빠른 스레드 기반 메모리 할당 시스템을 사용합니다.
최적화된 중첩 루프 조인을 사용하여 매우 빠른 조인을 실행합니다.
임시 테이블로 사용되는 인메모리 해시 테이블을 구현합니다.
가능한 한 빠르도록 고도로 최적화된 클래스 라이브러리를 사용하여 SQL 함수를 구현합니다. 일반적으로 쿼리 초기화 이후에는 전혀 메모리 할당을 수행하지 않습니다.
클라이언트/서버 네트워크 환경에서 사용할 수 있도록 서버를 별도의 프로그램으로 제공합니다.
다양한 데이터 타입: 부호/무부호 정수 1, 2, 3, 4, 8 byte 길이,
FLOAT,
DOUBLE,
CHAR,
VARCHAR,
BINARY,
VARBINARY,
TEXT,
BLOB,
DATE,
TIME,
DATETIME,
TIMESTAMP,
YEAR,
SET,
ENUM,
그리고 OpenGIS 공간 타입이 있습니다.
Chapter 13, Data Types를 참조하십시오.
고정 길이 및 가변 길이 문자열 타입.
SELECT 리스트와
WHERE 절에서 연산자 및 함수를 완전히 지원합니다.
예를 들면 다음과 같습니다:1mysql> SELECT CONCAT(first_name, ' ', last_name) 2 -> FROM citizen 3 -> WHERE income/dependents > 10000 AND age > 30;
SQL GROUP BY 및
ORDER BY 절을 완전히 지원합니다.
그룹 함수(
COUNT(),
AVG(),
STD(),
SUM(),
MAX(),
MIN(),
GROUP_CONCAT())을 지원합니다.
표준 SQL과 ODBC 문법 모두에 대해
LEFT OUTER JOIN 및
RIGHT OUTER JOIN을 지원합니다.
표준 SQL에서 요구하는 대로 테이블 및 컬럼에 대한 별칭을 지원합니다.
DELETE,
INSERT,
REPLACE,
UPDATE 구문이,
변경(영향을 받은)된 행 개수를 반환하도록 하거나,
서버에 연결할 때 플래그를 설정하여
그 대신 일치한 행 개수를 반환하도록 지원합니다.
데이터베이스, 스토리지 엔진, 테이블, 인덱스에 대한 정보를 검색하는
MySQL 고유의 SHOW
구문을 지원합니다.
표준 SQL에 따라 구현된
INFORMATION_SCHEMA 데이터베이스를 지원합니다.
옵티마이저가 쿼리를 어떻게 해결하는지 보여 주는
EXPLAIN 구문을 제공합니다.
함수 이름이 테이블 또는 컬럼 이름과 독립적입니다.
예를 들어, ABS는 유효한 컬럼 이름입니다.
유일한 제약은 함수 호출의 경우 함수 이름과 그 뒤에 오는
“(” 사이에 공백을 허용하지 않는다는 점입니다.
Section 11.3, “Keywords and Reserved Words”를 참조하십시오.
동일한 구문 내에서 서로 다른 데이터베이스의 테이블을 참조할 수 있습니다.
매우 유연하고 안전하며 호스트 기반 검증을 가능하게 하는 권한 및 비밀번호 시스템을 제공합니다.
서버에 연결할 때 모든 비밀번호 트래픽을 암호화하여 비밀번호 보안을 제공합니다.
대규모 데이터베이스를 지원합니다. 우리는 5000만 개의 레코드를 포함하는 데이터베이스와 함께 MySQL Server를 사용합니다. 또한 20만 개의 테이블과 약 5,000,000,000개의 행으로 MySQL Server를 사용하는 사용자도 알고 있습니다.
테이블당 최대 64개의 인덱스를 지원합니다.
각 인덱스는 1개에서 16개까지의 컬럼 또는 컬럼의 일부로 구성될 수 있습니다.
InnoDB 테이블의 최대 인덱스 폭은
767 byte 또는 3072 byte입니다.
Section 17.21, “InnoDB Limits”를 참조하십시오.
MyISAM 테이블의 최대 인덱스 폭은 1000 byte입니다.
Section 18.2, “The MyISAM Storage Engine”를 참조하십시오.
인덱스는 CHAR,
VARCHAR,
BLOB,
TEXT 컬럼 타입에 대해
컬럼 프리픽스를 사용할 수 있습니다.
클라이언트는 여러 프로토콜을 사용하여 MySQL Server에 연결할 수 있습니다:
모든 플랫폼에서 클라이언트는 TCP/IP 소켓을 사용하여 연결할 수 있습니다.
Windows 시스템에서는, 서버가
named_pipe 시스템 변수을
활성화한 상태로 시작된 경우,
클라이언트는 네임드 파이프를 사용하여 연결할 수 있습니다.
Windows 서버는 또한
shared_memory 시스템 변수을
활성화한 상태로 시작된 경우 공유 메모리 연결도 지원합니다.
클라이언트는
--protocol=memory 옵션을 사용하여
공유 메모리를 통해 연결할 수 있습니다.
Unix 시스템에서는, 클라이언트가 Unix 도메인 소켓 파일을 사용하여 연결할 수 있습니다.
MySQL 클라이언트 프로그램은 다양한 언어로 작성될 수 있습니다. C로 작성된 클라이언트 라이브러리는 C 또는 C++로 작성된 클라이언트, 혹은 C 바인딩을 제공하는 어떤 언어에서든 사용할 수 있습니다.
C, C++, Eiffel, Java, Perl, PHP, Python, Ruby, Tcl용 API가 제공되어, 다양한 언어로 MySQL 클라이언트를 작성할 수 있습니다. Chapter 31, Connectors and APIs를 참조하십시오.
Connector/ODBC(MyODBC) 인터페이스는 ODBC(Open Database Connectivity) 연결을 사용하는 클라이언트 프로그램에 대해 MySQL 지원을 제공합니다. 예를 들어, MS Access를 사용하여 MySQL server에 연결할 수 있습니다. 클라이언트는 Windows 또는 Unix에서 실행될 수 있습니다. Connector/ODBC 소스는 사용 가능합니다. 모든 ODBC 2.5 함수는 지원되며, 그 외 다수의 함수도 지원됩니다. MySQL Connector/ODBC Developer Guide를 참조하십시오.
Connector/J 인터페이스는 JDBC 연결을 사용하는 Java 클라이언트 프로그램에 대해 MySQL 지원을 제공합니다. 클라이언트는 Windows 또는 Unix에서 실행될 수 있습니다. Connector/J 소스는 사용 가능합니다. MySQL Connector/J Developer Guide를 참조하십시오.
MySQL Connector/NET은 개발자가 MySQL과의 안전하고 고성능인 데이터 연결성이 필요한 .NET 애플리케이션을 손쉽게 생성할 수 있도록 해줍니다. 이는 필요한 ADO.NET 인터페이스를 구현하고 ADO.NET을 인식하는 도구와 통합됩니다. 개발자는 원하는 .NET 언어를 사용하여 애플리케이션을 빌드할 수 있습니다. MySQL Connector/NET은 100% 순수 C#으로 작성된 완전 관리형 ADO.NET 드라이버입니다. MySQL Connector/NET Developer Guide를 참조하십시오.
서버는 여러 언어로 클라이언트에게 에러 메시지를 제공할 수 있습니다. Section 12.12, “Setting the Error Message Language”를 참조하십시오.
latin1(cp1252), german,
big5, ujis, 여러 유니코드 문자 집합 등을 포함한
여러 다른 문자 집합을 완전히 지원합니다.
예를 들어, 스칸디나비아 문자 “å”,
“ä”, “ö”는
테이블 및 컬럼 이름에서 사용할 수 있습니다.
모든 데이터는 선택된 문자 집합으로 저장됩니다.
정렬 및 비교는 기본 문자 집합 및 정렬 규칙에 따라 수행됩니다. MySQL server가 시작될 때 이를 변경할 수 있습니다( Section 12.3.2, “Server Character Set and Collation” 참조). 매우 고급 정렬의 예시는 Czech sorting code를 살펴보십시오. MySQL Server는 컴파일 시와 런타임 시에 지정할 수 있는 다양한 문자 집합을 지원합니다.
서버 시간대는 동적으로 변경할 수 있으며, 개별 클라이언트는 자신의 시간대를 지정할 수 있습니다. Section 7.1.15, “MySQL Server Time Zone Support”를 참조하십시오.
MySQL에는 여러 클라이언트 및 유틸리티 프로그램이 포함됩니다. 여기에는 mysqldump, mysqladmin과 같은 명령줄 프로그램과, MySQL Workbench와 같은 그래픽 프로그램이 포함됩니다.
MySQL Server에는 테이블을 검사(check), 최적화(optimize), 복구(repair)하기 위한
SQL 구문에 대한 내장 지원이 있습니다.
이러한 구문은
mysqlcheck 클라이언트를 통해
명령줄에서 사용할 수 있습니다.
MySQL에는 또한 MyISAM 테이블에 대해
이러한 작업을 수행하는
매우 빠른 명령줄 유틸리티인
myisamchk도 포함됩니다.
Chapter 6, MySQL Programs를 참조하십시오.
MySQL 프로그램은 --help 또는 -? 옵션으로 실행하여
온라인 도움말을 얻을 수 있습니다.
1.2.1 What is MySQL?
1.2.3 History of MySQL