Tôi nên cài đặt cơ sở dữ liệu 32 bit hay cơ sở dữ liệu 64 bit?


16

(Tôi đã đọc rất nhiều về Hệ điều hành / Ứng dụng 64 bit so với 32 bit, nhưng câu hỏi này đặc biệt liên quan đến cơ sở dữ liệu.)

Tôi đang cố gắng tìm hiểu những ưu và nhược điểm của cơ sở dữ liệu 32 bit so với 64 bit và cụ thể là trong những điều kiện bắt đầu có ý nghĩa khi sử dụng cài đặt 64 bit.

Các hệ thống cơ sở dữ liệu mà tôi quan tâm là: SQL Server 2008, MySQL và PostgreQuery 9.0.

Tôi đã đọc rằng các phiên bản trước 9.0 của PostgreSQL chỉ có 32 bit cho Windows và bài viết này về việc chạy PostgreQuery 32 bit trên Windows 64 bit sẽ xóa một số nhầm lẫn của tôi, nhưng tôi đang tìm thêm thông tin.

Khi nào tôi sẽ được hưởng lợi từ việc sử dụng cơ sở dữ liệu 64 bit (tức là kích thước cơ sở dữ liệu / dung lượng ổ đĩa, bộ nhớ hệ thống có sẵn, các loại kịch bản dữ liệu được biết là có lợi từ nó, công cụ cơ sở dữ liệu nào đang được sử dụng, v.v.)?

Câu trả lời:


20

trong những điều kiện bắt đầu có ý nghĩa để sử dụng cài đặt 64 bit.

Dưới tất cả ngoại trừ là ngu ngốc. Xin lỗi - những gì tốt sẽ được cài đặt cơ sở dữ liệu 32 bit trên máy chủ 64 bit? Và - hãy tưởng tượng - SERVER 2008R2 CHỈ có sẵn trong 64 bit.

Ngày nay - không có kịch bản nào để cài đặt phiên bản SQL Server 32 bit nếu có cơ hội.

Cơ sở dữ liệu là cụ thể trong việc này - vì họ muốn sử dụng nhiều bộ nhớ làm bộ đệm nếu cần thiết. Nhiều hơn so với 2gb / 3gb ít ỏi, quy trình 32 bit có thể cung cấp cho họ. PAE không giống nhau. Ngay cả khi bỏ qua các giới hạn, bộ nhớ PAE không bằng bộ nhớ thực cho SQL Server, (nó chỉ được sử dụng cho MỘT điều - lưu trữ các trang db).

Hệ điều hành 32 bit - ở cùng cấp độ. Không có ý nghĩa gì đối với phần cứng hiện đại để cài đặt HĐH 32 bit.


4
+1 Anh Amen !!
DaniQuery

6
Cũng như hệ điều hành và ứng dụng 32 bit, có một số lợi thế nhỏ, chẳng hạn như dung lượng bộ nhớ nhỏ hơn.
JohnB

@TomTom: SQL Server 2008 R2 có sẵn trong 32-bit (di chuyển xuống một chút) msdn.microsoft.com/en-us/library/ms143506.aspx
JohnB

1
Vâng, dấu chân nhỏ hơn. SADLY đặc biệt cho các cơ sở dữ liệu không liên quan. Một cơ sở dữ liệu không phải là từ. Nó xử lý - trong hầu hết các cài đặt - RẤT NHIỀU dữ liệu, vì vậy việc truy cập RẤT NHIỀU RAM có ý nghĩa.
TomTom

1
... Rất nhiều ram là hơn 4GB trong một quy trình? Bạn có biết có bao nhiêu máy chủ SQL không cung cấp điều đó cho toàn bộ máy chủ đa xử lý không? Tôi không tranh luận rằng việc có một hệ điều hành 64 bit và máy chủ SQL là một ý tưởng tồi, nhưng tôi sẽ nói rằng có rất nhiều cấu hình trong đó nó không quan trọng / hoàn toàn /.
Evan Carroll

6

PostgreQuery có lợi từ việc xây dựng 64 bit theo hai cách chính. Đầu tiên, các loại dữ liệu có thể phù hợp với 64 bit (chủ yếu là số nguyên và loại dấu thời gian lớn hơn) có thể được truyền trực tiếp hiệu quả hơn trong các thanh ghi thay vì sử dụng con trỏ. Thứ hai, có thể phân bổ thêm bộ nhớ cho bộ đệm bộ đệm chuyên dụng của cơ sở dữ liệu. Điểm lợi nhuận giảm dần trên điều chỉnh đó (shared_buffers) thường là khoảng 8GB, nhưng nó sẽ bị giới hạn ở <2GB trên hệ thống 32 bit.

Tuy nhiên, nếu bạn đang ở trên Windows, PostgreSQL không xử lý bộ nhớ dùng chung hiệu quả như trên các nền tảng UNIX-ish. Điểm quay trở lại giảm dần thường kết thúc là <= 512 MB bộ nhớ chuyên dụng cho cơ sở dữ liệu cho dù bạn có bản dựng PostgreQuery 32 bit hay 64 bit. Bạn sẽ làm tốt hơn để dành phần còn lại cho bộ đệm của hệ điều hành thay vì dành nó cho cơ sở dữ liệu. Theo đó, thực sự không có nhiều hiệu suất tăng từ 32 đến 64 bit với PostgreSQL trên Windows; điều chỉnh chính thường có lợi từ việc có sẵn nhiều RAM hơn không thực sự sử dụng nó rất tốt.


1
Lưu ý rằng một số người đã báo cáo thấy lợi ích từ Windows PostgreQuery 64 bit bằng cách đặt các giá trị rất lớn cho work_mem, cho phép máy chủ sắp xếp lượng dữ liệu lớn hơn trong bộ nhớ.
Greg Smith

4

Tôi chạy MySQL trên kiến ​​trúc 64 bit vì tôi muốn chúng sử dụng hiệu quả nhất hơn 4GB bộ nhớ cho mỗi luồng. Nói chung, điều này nên áp dụng cho tất cả các cơ sở dữ liệu.

Một trong những khác biệt chính giữa các kiến ​​trúc là tăng địa chỉ cho phép xử lý bộ nhớ lớn hơn. Mặc dù Tiện ích mở rộng địa chỉ vật lý của Intel cho phép đánh địa chỉ hơn 4GB, nhưng nó vẫn bị giới hạn ở mức 4GB trên mỗi luồng. PAE cho phép tối đa 64GB.

Wikipedia có so sánh 64 bit so với 32 bit, bao gồm nhiều chi tiết cấp thấp hơn.


2
Đó là mỗi quá trình, không phải mỗi chủ đề. Chủ đề chia sẻ cùng một không gian bộ nhớ.
Evan Carroll

3

Lưu ý rằng nếu bạn chỉ có các thư viện máy khách MySQL 64 bit, bạn sẽ gặp lỗi "kiến trúc sai" khi cố gắng liên kết chúng với mã 32 bit. Điều này xảy ra với tôi khi tôi cố gắng cài đặt các ràng buộc python ("pip install MySQL-python").

Người ta có thể sử dụng máy chủ MySQL 64 bit với máy khách MySQL 32 bit và thật đáng tiếc khi Máy chủ cộng đồng MySQL không bao gồm cả phiên bản thư viện máy khách 32 bit và 64 bit. Các đúng giải pháp là cài đặt 32-bit thư viện MySQL client bổ sung. Tuy nhiên, vì cách dễ nhất để cài đặt MySQL dường như là tải xuống nhị phân của MySQL Community Server và do trình cài đặt 64 bit chỉ đi kèm với các thư viện máy khách 64 bit, nên đường dẫn ít kháng cự nhất là chỉ tải xuống trình cài đặt 32 bit .

(tất cả điều này, giả sử rằng bạn sẽ luôn sử dụng các tập dữ liệu rất nhỏ)


2

Đối với rất nhiều thứ, 32 bit là một chiến thắng (miễn là bạn có thể sống với không gian địa chỉ), nhưng DB là một điều mà ngay cả các cơ sở dữ liệu nhỏ cũng có thể tăng tốc thực sự khi chạy trong 64 bit. Cấp, tôi không biết gì về máy chủ MS SQL, nhưng tôi đã thấy điểm chuẩn (ví dụ: trên Sun 5 (máy tính để bàn 64 bit cũ hơn), 32 bit thường nhanh hơn một chút, ngoại trừ mysql, 30 % nhanh hơn trong 64 bit.


2
"Đối với rất nhiều thứ, 32 bit là một chiến thắng" - Ví dụ ??
Chris S

1
Trường hợp duy nhất tôi có thể tưởng tượng nơi cơ sở dữ liệu 32 bit sẽ nhanh hơn 64 bit là nếu mã chưa được biên dịch với các tối ưu hóa phù hợp. Theo như phần mềm kinh doanh, cơ sở dữ liệu có lẽ là thứ tốt nhất có thể tận dụng tốt nhất những gì 64 bit cung cấp.
John Gardeniers

1
Chà, số lượng điểm chuẩn lớn trong kỷ nguyên chuyển đổi RISC 32> 64 và ít nhất là x86 đầu tiên cho thấy rất ít nếu có lợi cho 64 bit, trừ khi bạn cần không gian địa chỉ và db làm. Tôi cũng không muốn tin điều đó và tôi đặt cược cho x86 ngày hôm nay, 64 bit luôn nhanh hơn (chỉ vì bạn thoát khỏi tập lệnh i32 đó). Anandtech.com có ​​điểm chuẩn cho đến khi nhãn cầu của bạn chảy máu. Ghi nhớ: HIỂN THỊ DỮ LIỆU.
Ronald Pottol

1
Tất cả những thứ khác đều bằng nhau, nhược điểm chính mà tôi có thể nghĩ đến đối với 64 bit là với các con trỏ lớn hơn (64 bit), sẽ chiếm nhiều không gian bộ nhớ cache hơn so với cấu trúc dữ liệu động 32 bit tương đương (ví dụ: danh sách được liên kết, cây ...). Điều này làm giảm dung lượng bộ nhớ cache có sẵn. Triệu chứng này cũng tồn tại trong bộ nhớ chính. Máy chủ Debian 64 bit của tôi chỉ có 64Mb RAM sử dụng nhiều trao đổi hơn và chạy ít ứng dụng hơn so với máy chủ 32 bit được thiết lập tương tự.
sybreon

3
@sybreon: Tôi nghĩ rằng tôi có một 128mb cũ nằm xung quanh nếu bạn cần nó!
JohnB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.