2015-01-28 13 views

Trả lời

7

Không phân biệt loại dữ liệu được sử dụng, Cassandra lưu trữ tất cả dữ liệu trên đĩa (bao gồm giá trị khóa chính) dưới dạng mảng byte hex. Xét về hiệu suất, kiểu dữ liệu của khóa chính thực sự không quan trọng.

Trường hợp duy nhất mà nó quan trọng, nằm trong phân phối mã thông báo/nút. Điều này là do thẻ tạo ra cho "12345" dưới dạng văn bản sẽ khác với các dấu hiệu tạo ra cho 12345 như một bigint:

[email protected]:stackoverflow> CREATE TABLE textaskey (key text PRIMARY KEY, value text); 
[email protected]:stackoverflow> CREATE TABLE longaskey (key bigint PRIMARY KEY, value text); 
[email protected]:stackoverflow> INSERT INTO textaskey (key, value) VALUES ('12345','12345'); 
[email protected]:stackoverflow> INSERT INTO longaskey (key, value) VALUES (12345,'12345'); 
[email protected]:stackoverflow> SELECT token(key),value FROM textaskey ; 

token(key)   | value 
---------------------+------- 
2375712675693977547 | 12345 

(1 rows) 
[email protected]:stackoverflow> SELECT token(key),value FROM longaskey; 

token(key)   | value 
---------------------+------- 
3741197147323682197 | 12345 

(1 rows) 

Nhưng ngay cả trong ví dụ này, ta nên không thực hiện nhanh hơn/khác với người kia.

+0

Sẽ không có sự khác biệt nhỏ vì băm băm là thường chậm hơn số băm hoặc số nguyên băm. http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed. Tôi sẽ đồng ý mặc dù nó hầu như sẽ không đáng chú ý –

+0

Có, băm một chuỗi mất nhiều thời gian hơn một số, nhưng từ một phối cảnh truy vấn Cassandra, bạn không nên nhận thấy nó @desertice – Aaron

Các vấn đề liên quan