Loading...
MySQL 9.5 Reference Manual 9.5의 1.7 MySQL Standards Compliance의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
1.7.1 MySQL Extensions to Standard SQL
1.7.2 MySQL Differences from Standard SQL
1.7.3 How MySQL Deals with Constraints
이 섹션에서는 MySQL이 ANSI/ISO SQL 표준과 어떤 관련이 있는지 설명합니다. MySQL Server에는 SQL 표준에 대한 많은 확장이 있으며, 여기에서 그것들이 무엇이고 어떻게 사용하는지 알 수 있습니다.
또한 MySQL Server에 없는 기능과, 이러한 차이점 가운데 일부를 우회하는 방법에 대한 정보도 찾을 수 있습니다.
SQL 표준은 1986년 이후로 발전해 왔으며 여러 버전이 존재합니다. 이 매뉴얼에서 “SQL-92”는 1992년에 공개된 표준을 의미합니다. “SQL:1999”, “SQL:2003”, “SQL:2008”, “SQL:2011”은 각각 해당 연도에 공개된 표준 버전을 의미하며, 마지막 것이 가장 최근 버전입니다. 우리는 “the SQL standard” 또는 “standard SQL”이라는 표현을 사용할 때 언제나 현재 시점의 SQL 표준 버전을 의미합니다.
이 제품과 관련된 우리의 주요 목표 중 하나는 속도나 안정성을 희생하지 않고 SQL 표준 준수를 향해 계속 나아가는 것입니다. 우리는 대규모 사용자 기반의 상당 부분에게 MySQL Server의 사용성을 크게 향상시킨다면, SQL에 확장을 추가하거나 비-SQL 기능에 대한 지원을 제공하는 것을 주저하지 않습니다. HANDLER 인터페이스는 이러한 전략의 한 예입니다. Section 15.2.5, “HANDLER Statement”를 참조하십시오.
우리는 미션 크리티컬 24/7 사용과 대량 웹 또는 로깅 사용을 모두 만족시키기 위해 트랜잭션 및 비트랜잭션 데이터베이스를 계속 지원하고 있습니다.
MySQL Server는 원래 소형 컴퓨터 시스템에서 중간 규모 데이터베이스(1천만~1억 행, 또는 테이블당 약 100MB)를 대상으로 설계되었습니다. 오늘날에는 MySQL Server가 테라바이트 규모 데이터베이스를 처리합니다.
우리는 실시간 지원을 목표로 하지는 않지만, MySQL 복제 기능은 상당한 기능을 제공합니다.
MySQL은 ODBC 레벨 0에서 3.51까지를 지원합니다.
MySQL은 NDBCLUSTER 스토리지 엔진을 사용한 고가용성 데이터베이스 클러스터링을 지원합니다. Chapter 25, MySQL NDB Cluster 9.5를 참조하십시오.
우리는 대부분의 W3C XPath 표준을 지원하는 XML 기능을 구현하고 있습니다. Section 14.11, “XML Functions”을 참조하십시오.
MySQL은 RFC 7159에 정의되고 ECMAScript 표준(ECMA-262)을 기반으로 하는 네이티브 JSON 데이터 타입을 지원합니다. Section 13.5, “The JSON Data Type”을 참조하십시오. 또한 MySQL은 SQL:2016 표준의 사전 공개 초안에 지정된 SQL/JSON 함수의 서브셋을 구현합니다. 자세한 내용은 Section 14.17, “JSON Functions”을 참조하십시오.
MySQL server는 서로 다른 SQL 모드로 동작할 수 있으며, sql_mode 시스템 변수 값에 따라 서로 다른 클라이언트에 대해 이들 모드를 다르게 적용할 수 있습니다. DBA는 사이트 서버 운영 요구 사항에 맞추어 글로벌 SQL 모드를 설정할 수 있으며, 각 애플리케이션은 자신의 요구 사항에 맞게 세션 SQL 모드를 설정할 수 있습니다.
모드는 MySQL이 지원하는 SQL 구문과 수행하는 데이터 유효성 검사에 영향을 줍니다. 이를 통해 서로 다른 환경에서 MySQL을 더 쉽게 사용할 수 있고, 다른 데이터베이스 서버와 함께 MySQL을 사용하는 것도 더 쉬워집니다.
SQL 모드 설정에 대한 자세한 내용은 Section 7.1.11, “Server SQL Modes”를 참조하십시오.
MySQL Server를 ANSI 모드로 실행하려면 mysqld를 --ansi 옵션과 함께 시작하십시오. 서버를 ANSI 모드로 실행하는 것은 다음 옵션으로 시작하는 것과 같습니다:
1--transaction-isolation=SERIALIZABLE --sql-mode=ANSI
런타임 시에 동일한 효과를 얻으려면, 다음 두 문을 실행하십시오:
1SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE; 2SET GLOBAL sql_mode = 'ANSI';
sql_mode 시스템 변수를 'ANSI'로 설정하면 ANSI 모드와 관련된 모든 SQL 모드 옵션이 다음과 같이 활성화된다는 것을 확인할 수 있습니다:
1mysql> SET GLOBAL sql_mode='ANSI'; 2mysql> SELECT @@GLOBAL.sql_mode; 3 -> 'REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI'
--ansi 옵션을 사용하여 서버를 ANSI 모드로 실행하는 것은 SQL 모드를 'ANSI'로 설정하는 것과 완전히 동일하지는 않은데, --ansi 옵션이 트랜잭션 격리 수준도 함께 설정하기 때문입니다.
1.6 How to Report Bugs or Problems
1.7.1 MySQL Extensions to Standard SQL