2015-01-28 9 views

Antwort

7

Nein. Unabhängig vom verwendeten Datentyp speichert Cassandra alle Daten auf der Festplatte (einschließlich der Primärschlüsselwerte) als Hex-Byte-Arrays. In Bezug auf die Leistung spielt der Datentyp des Primärschlüssels keine Rolle.

Der einzige Fall, wo es wichtig wäre, ist in Token/Knoten-Verteilung. Dies liegt daran, das erzeugte Token für "12345" als Text aus dem Token für 12345 als bigint erzeugt wird anders sein:

[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) 

Aber auch in diesem Beispiel sollte man nicht durchführen schneller/anders als die anderen.

+0

Würde es nicht kleine Unterschiede, weil Hash Text ist in der Regel langsamer als Hashing Zahlen oder Ganzzahlen. http://programmers.stackexchange.com/questions/49550/which-hashing-algorithm-is-best-for-uniqueness-and-speed. Ich würde jedoch zustimmen, dass es meist nicht auffallen wird –

+0

Ja, Hashing dauert länger als eine Zahl, aber aus einer Cassandra Abfrage Perspektive, sollten Sie es nicht bemerken @ Desertice – Aaron

Verwandte Themen