32 비트 데이터베이스 또는 64 비트 데이터베이스를 설치해야합니까?


16

(64 비트와 32 비트 OS / 앱에 대해 많이 읽었지만이 질문은 특히 데이터베이스와 관련이 있습니다.)

32 비트 대 64 비트 데이터베이스의 장단점을 이해하려고합니다. 즉, 64 비트 설치를 사용하는 것이 어떤 조건에서 시작되는지 이해하려고합니다.

관심있는 데이터베이스 시스템은 SQL Server 2008, MySQL 및 PostgreSQL 9.0입니다.

9.0 이전 버전의 PostgreSQL은 Windows의 경우 32 비트로 만 제공된다는 것을 읽었 으며 64 비트 Windows에서 32 비트 PostgreSQL을 실행하는 방법에 대한기사를 통해 혼란을 겪을 수 있지만 더 많은 정보를 찾고 있습니다.

64 비트 데이터베이스 (예 : 데이터베이스 크기 / 디스크 공간, 사용 가능한 시스템 메모리, 이로 인해 도움이되는 것으로 알려진 데이터 유형, 사용중인 데이터베이스 엔진 등)를 사용하면 언제 도움이됩니까?

답변:


20

64 비트 설치를 사용하는 것이 어떤 조건에서 시작 되는가?

바보를 제외한 모든 것. 죄송합니다. 64 비트 서버에 32 비트 데이터베이스를 설치하는 것이 무엇입니까? SERVER 2008R2는 64 비트에서만 사용할 수 있습니다.

현재 32 비트 SQL Server 버전을 설치하는 것이 좋은 시나리오는 없습니다.

데이터베이스는 필요한 경우 많은 메모리를 캐시로 사용하려고하기 때문에 이에 따라 다릅니다. 32 비트 프로세스는 빈약 한 2GB / 3GB보다 훨씬 더 많은 것을 제공 할 수 있습니다. PAE는 동일하지 않습니다. 한계를 무시하더라도 PAE 메모리는 SQL Server의 실제 메모리와 같지 않습니다 (DB 페이지 캐싱 중 한 가지에만 사용됨).

32 비트 OS-동일한 레벨에 있습니다. 32 비트 OS를 설치하는 것은 현대 하드웨어에서는 전혀 의미가 없습니다.


4
아멘 브라더 +1
DaniSQL

6
32 비트 OS 및 앱은 메모리 설치 공간을 줄이는 등 약간의 이점이 있습니다.
JohnB

@TomTom : SQL Server 2008 R2는 32 비트 (약간 아래로 스크롤)로 제공됩니다. msdn.microsoft.com/en-us/library/ms143506.aspx
JohnB

1
예, 발자국이 작습니다. 특히 관련이없는 데이터베이스의 경우 특히 그렇습니다. 데이터베이스는 단어가 아닙니다. 대부분의 설치에서 데이터의 LOTS를 처리하므로 RAM의 LOTS에 액세스하는 것이 좋습니다.
TomTom

1
... 프로세스에서 램이 4GB를 초과합니까? 전체 다중 처리 서버에 SQL 서버를 제공하지 않는 SQL 서버 수를 알고 있습니까? 64 비트 OS와 SQL Server를 사용하는 것은 좋지 않다고 주장하지는 않지만 / at all /이 중요하지 않은 많은 구성이 있다고 말할 것입니다.
Evan Carroll

6

PostgreSQL은 두 가지 주요 방법으로 64 비트 빌드를 통해 이점을 얻습니다. 첫째, 64 비트 (주로 큰 정수 및 타임 스탬프 유형)에 맞는 데이터 유형은 포인터를 사용하지 않고 레지스터에서 직접보다 효율적으로 전달 될 수 있습니다. 둘째, 데이터베이스의 전용 버퍼 캐시에 더 많은 메모리를 할당 할 수 있습니다. 해당 튜너 블 (shared_buffers)의 수익 감소 지점은 일반적으로 약 8GB이지만 32 비트 시스템에서 <2GB로 제한됩니다.

그러나 Windows를 사용하는 경우 PostgreSQL은 UNIX-ish 플랫폼 에서처럼 공유 메모리를 효율적으로 처리하지 않습니다. 리턴 감소 지점은 일반적으로 PostgreSQL의 32 비트 빌드 또는 64 비트 빌드에 관계없이 데이터베이스에 대해 <= 512MB의 전용 메모리입니다. 나머지는 운영 체제 캐시를 데이터베이스 전용으로 사용하지 않고 그대로 두는 것이 좋습니다. 따라서 Windows의 PostgreSQL을 사용하면 32 비트에서 64 비트로 성능이 크게 향상되지는 않습니다. 더 많은 RAM을 사용할 수있게되면 일반적으로 이점을 얻을 수있는 주요 튜너 블은 실제로이를 잘 활용하지 못합니다.


1
일부 사람들은 work_mem에 대해 매우 큰 값을 설정하여 서버가 메모리에서 더 많은 양의 데이터를 정렬 할 수있게함으로써 64 비트 Windows PostgreSQL의 이점을보고한다고보고했습니다.
Greg Smith

4

스레드 당 4GB 이상의 메모리를 가장 효율적으로 사용하기를 원하므로 64 비트 아키텍처에서 MySQL을 실행합니다. 일반적으로 모든 데이터베이스에 적용됩니다.

아키텍처 간의 주요 차이점 중 하나는 주소 지정이 증가하면 더 많은 메모리 처리가 가능하다는 것입니다. 인텔의 물리적 주소 확장 은 4GB 이상의 주소 지정을 허용 하지만 스레드 당 4GB로 제한됩니다. PAE는 최대 64GB까지 허용합니다.

Wikipedia에는 64 비트와 32 비트 의 비교 가 있으며 여기에는 더 낮은 수준의 세부 정보가 포함됩니다.


2
스레드 당이 아니라 프로세스 당입니다. 스레드는 동일한 메모리 공간을 공유합니다.
Evan Carroll

3

64 비트 MySQL 클라이언트 라이브러리 만있는 경우 32 비트 코드와 함께 링크하려고하면 "잘못된 아키텍처"오류가 발생합니다. 파이썬 바인딩 ( "pip install MySQL-python")을 설치하려고 할 때 이런 일이 일어났습니다.

하나는 32 비트 MySQL 클라이언트와 함께 64 비트 MySQL 서버를 사용할 수 있으며 MySQL 커뮤니티 서버에 32 비트 및 64 비트 클라이언트 라이브러리 버전이 모두 포함되어 있지 않은 것은 부끄러운 일입니다. 올바른 해결책은 추가 32 비트 MySQL 클라이언트 라이브러리를 설치하는 것입니다. 그러나 MySQL을 설치하는 가장 쉬운 방법은 MySQL Community Server 바이너리 다운로드 인 것으로 보이며 64 비트 설치 프로그램에는 64 비트 클라이언트 라이브러리 만 제공되므로 최소 저항 경로는 32 비트 설치 프로그램을 다운로드하는 것입니다. .

(항상 매우 작은 데이터 세트를 사용한다고 가정하면이 모든 것)


2

주소 공간으로 살 수있는 한 32 비트가 승리하지만, DB는 작은 데이터베이스라도 64 비트로 실제로 향상 될 수있는 것 중 하나입니다. 물론, MS SQL 서버에 대해서는 알지 못하지만 벤치 마크를 보았습니다 (예 : Sun 5 (이전 64 비트 Sun 데스크탑)). 32 비트는 mysql을 제외하고 일반적으로 조금 빠릅니다. 64 비트에서 % 빠릅니다.


2
"많은 것들을 위해, 32 비트는 승리"-예 ??
크리스 S

1
32 비트 데이터베이스가 64 비트보다 빠른 위치를 상상할 수있는 유일한 경우는 코드가 적절한 최적화로 컴파일되지 않은 경우입니다. 비즈니스 소프트웨어가 진행되는 한 데이터베이스는 64 비트가 제공하는 기능을 최대한 활용할 수있는 것입니다.
John Gardeniers

1
글쎄, RISC 32> 64 전환 시대, 그리고 초기 x86 초기의 많은 벤치 마크는 주소 공간이 필요하지 않고 db 가하지 않는 한 64 비트에 대한 이점이 거의 없었습니다. 나는 그것을 믿고 싶지 않았고, 오늘 x86에 내기를 걸었다 .64 비트는 항상 더 빠르다 (i32 명령어 세트를 벗어나기 때문에). Anandtech.com은 안구가 출혈 할 때까지 벤치 마크를 수행합니다. 기억하십시오 : 데이터 표시.
로널드 포톨

1
다른 모든 것은 동일하지만 64 비트에 대해 생각할 수있는 주요 단점은 더 큰 포인터 (64 비트)를 사용한다는 것입니다. 이는 동등한 32 비트 동적 데이터 구조 (예 : 연결된 목록, 트리)보다 더 많은 캐시 메모리 공간을 차지합니다 ...). 사용 가능한 캐시 메모리의 양이 줄어 듭니다. 이 증상은 메인 메모리에서도 지속됩니다. 64Mb의 RAM 만있는 64 비트 데비안 서버는 비슷한 설정 32 비트 서버보다 더 많은 스왑을 사용하고 더 적은 앱을 실행합니다.
sybreon

3
@ sybreon : 필요한 경우 오래된 128MB가 놓여 있다고 생각합니다!
JohnB
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.