MySQL의 ANSI 드라이버와 유니코드 드라이버의 차이
Windows의 ODBC(64비트)에서 데이터 소스를 선택하면 MySQL Database의 두 가지 옵션을 사용할 수 있습니다.
- MySQL ODBC 5.3 ANSI 드라이버
- MySQL ODBC 5.3 유니코드 드라이버
이 둘의 차이점은 무엇입니까?
먼저 MySQL을 사용하지 않지만 ODBC Drivers에 대해서는 알고 있습니다.ODBC에는 유니코드와 안시에 대한 다른 API가 있습니다.ansi API는 A로 끝나고 유니코드 API는 W로 끝납니다(예: SQLPrepareA 및 SQLPrepareW).ansi API는 문자열에 대한 바이트/옥텟을 허용하므로 chrs 0-255만 처리할 수 있습니다.유니코드 API는 2바이트 UCS-2 인코딩된 유니코드 코드 포인트인 SQLWCHAR를 허용합니다(새로운 MS SQL Server 버전은 UTF16 인코딩 문자열을 처리할 수 있음). 따라서 유니코드의 처음 65000 코드 포인트를 처리할 수 있습니다.
유니코드 데이터를 저장해야 한다면 어떤 드라이버를 사용할지 선택할 수 없습니다.
저는 Carnangel이 보낸 속도에 대한 의견이 유니코드 드라이버를 사용하는 것을 지연시키지 않을 것이고 어떤 경우에도 그의 의견에는 어떤 사실도 포함되어 있지 않습니다.그의 뜻은 다음과 같습니다.
유니코드 데이터를 MySQL에 저장하면 UTF-8이 인코딩되어 네트워크를 통해 UTF-8로 전송됩니다. 클라이언트 측에서는 ODBC 드라이버가 UTF-8 인코딩 데이터를 UCS-2로 변환해야 합니다.분명히 그 반대입니다.
유니코드 ODBC 드라이버로 ANSI ODBC 응용 프로그램(안시 ODBC apis를 사용하는 응용 프로그램)을 작성하는 경우 ODBC 드라이버 관리자는 드라이버를 UCS-2로 변환하고 드라이버에 전달한 8비트 데이터를 UCS-2로 변환해야 합니다. 따라서 그렇게 하지 마십시오.
요즘에도 ANSI ODBC 드라이버를 사용하는 사람이 있다면 놀랄 것입니다.
아시다시피, 데이터 문자 타입에는 Ansi와 Unicode가 적용됩니다.프로세서의 문제가 아닌 하나를 선택할 수 있습니다. 이 둘의 차이점은 다음과 같습니다. - 유니코드를 사용하면 모든 문자 속성을 활성화할 수 있지만 원시 속도 처리를 줄일 수 있습니다. - Ansi, 반대의 문자 유형이지만 원시 속도 처리를 하면 속도가 빨라집니다.
처음 사용하는 사용자라면 유니코드를 선택하고, 그렇지 않다면 Ansi를 선택할 수 있습니다.
요점을 이해하셨으면 좋겠습니다 ;)
언급URL : https://stackoverflow.com/questions/25889046/difference-between-ansi-and-unicode-drivers-of-mysql
'programing' 카테고리의 다른 글
CG_CONTECT_SHOW_BACKTRACE 환경변수는 어떻게 설정할 수 있습니까? (0) | 2023.09.28 |
---|---|
AngularJS로 1초마다 카운트다운하는 메시지를 표시하려면 어떻게 해야 합니까? (0) | 2023.09.28 |
배열을 JavaScript에서 별도의 변수로 압축 풀기 (0) | 2023.09.28 |
자바스크립트 IF 문에서 OR 조건을 사용하는 방법? (0) | 2023.09.28 |
각도 JS에서 ng-change에 다중 함수를 호출하는 방법은? (0) | 2023.09.28 |