有誰知道Cassandra中兩個CQL數據類型text
和varchar
之間的區別嗎? Cassandra文檔將這兩種類型描述爲「UTF-8編碼字符串」,僅此而已。Cassandra:text vs varchar
回答
text
只是varchar
的別名!
的文檔:
- Getting started with cql3 - Datastax
- Documentation on Datatypes in CQL - Datastax
- CQL3 Documentation - Apache
編輯
這裏的鏈接到C* 1.2 docs。文本vs varchar信息仍然是相同的,但是這個文檔包含一些額外的數據類型。
你可以參考你發現的地方TEXT是VARCHAR的別名?無法在任何給定鏈接中找到它 – analogue
「別名」的Ctrl + F不會產生您想要的答案。在CQL3文檔 - Apache鏈接中搜索「本地數據類型的信息」,您將看到varchar和text的描述,它們是相同的。還有[this](http://www.thefreedictionary.com/Aliases) –
@analogue [關於數據類型](http://docs.datastax.com/en/cassandra/1.2/cassandra/tools/use_about_data_types_c.html)內部的'UTF8Type'與CQL名稱'text,varchar'匹配,我認爲它們是別名。 – karmakaze
也許你的意思是CQL存儲類型,如果不是,則忽略我的答案。
在CQL中一直存在着嘗試與cassandra的內部進行距離的趨勢。無論這是一件好事還是一件壞事,都有待解釋。然而,與CQL最新版本相關的是,CQL開發人員一直在試圖提出更爲人熟悉的語法,而這些語法並不深入cassandra的內部。
如果你看看這個SO問題,你會得到的情況一個很好的例證: Creating column family or table in Cassandra while working Datastax API(which uses new Binary protocol)
近CQL版本中,一些別名,外星人卡桑德拉,但非常熟悉DBA的已經開始出現。例如,cassandra的ColumnFamily的本機已被別名替換爲Table,而文本只是varchar的別名,反之亦然。同樣,如果這是一件好事,這是一個意見問題。
因此,總而言之,您可以交替使用varchar和text。
當我開始使用卡桑德拉時,這也使我感到害怕。
text和varchar都是UTF8編碼的字符串,並且是彼此的同義詞,也就是說它們是完全相同的東西。
作爲一個附加說明,如果一個來自像MS SQL這樣的關係型世界,那麼也許還會猶豫是否使用這些類型(特別是TEXT)作爲實體的主要字段。 TEXT尤其通常與文本內容的大塊相關聯,這些大塊不會將主要關鍵點提供給第三種正常形式的關係思維。但是由於所有Cassandra類型基本上都是以十六進制字節數組的形式存儲在磁盤上,所以在使用它們作爲主鍵時並沒有真正的重要性能。
- 1. VARCHAR(254)vs VARCHAR(255)
- 2. mysql varbinary vs varchar
- 3. VARCHAR(1)vs BOOLEAN
- 4. Mysql Bigint VS Varchar
- 5. varchar vs text - MySQL
- 6. Oracle BLOB vs VARCHAR
- 7. VARCHAR vs DECIMAL性能
- 8. MySQL:VARCHAR(1024)vs VARCHAR(512)
- 9. SQL SELECT速度int vs varchar
- 10. MySQL的 - TEXT VS CHAR和VARCHAR
- 11. 存儲密碼哈希 - VARCHAR VS VARBINARY
- 12. mysql性能<, > for varchar vs整數
- 13. SQL Server隱式轉換爲varchar vs bigint
- 14. Char vs Varchar當不總是填充
- 15. VARCHAR(1500)VS TEXT | Utf-8編碼
- 16. PostgreSQL 8.3數據類型:xml vs varchar
- 17. 性能優勢。第2輪:VARBINARY vs VARCHAR
- 18. 索引性能BigInt有VS的VarChar
- 19. 將值插入到varchar(50)列vs varchar(2000)時的性能差異?
- 20. 索引varchar列
- 21. Varchar(255)到Varchar(MAX)
- 22. 是否varchar(max)= varchar?
- 23. Long varchar into varchar Ingres DB
- 24. PL/SQL varchar(10)to varchar(9)
- 25. 將數據類型varchar轉換爲float時出錯。 C#VS
- 26. Microsoft SQL Server 2005/2008:XML vs text/varchar數據類型
- 27. SQL服務器數據類型 - Date VS Varchar(n)
- 28. T-SQL(VARCHAR(最大值)VS CLR(字符串的SqlString,SqlChars)?
- 29. char vs varchar用於法語口音(多字節字符)
- 30. MySQL數據庫的大小VS VARCHAR長度
您能否提供文檔鏈接?我從來沒有聽說過。然而,我所聽到的是AsciiType和UTF8Type之間的差異應該是不言而喻的。 –
@baba這些是CQL3使用的名稱。 – Raedwald
是的,它花了我一段時間,但我想:) –