您好,登錄后才能下訂單哦!
下文內容主要給大家帶來Mysql與Couchbase定義及區別分析,這里所講到的知識,與書籍略有不同,都是億速云專業技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。
一、數據模型不同
Mysql
customer
id: numeric primary key
firstname: varchar
lastname: varchar
customer_address
id: numeric primary key
city: varchar
state: varchar
zip: varchar
customer_id: numeric foreign key
以上兩張表和他們的列并不復雜,但他們之間任然通過主鍵和外鍵建立了關系。
Couchbase
{
"type": "customer",
"first_name": "Nic",
"last_name": "Raboy"
}
{
"type": "customer_address",
"city": "San Francisco",
"state": "CA",
"zip": "94101",
"customer_id": "c::1"
}
看起來是不是和關系數據有點像??
接下來看看內嵌文檔,你還是不是這么認為的。
這樣看起來和關系數據庫就非常不一樣了。通過JSON,我們可以在文檔內嵌文檔。這樣我不就不用再新建一個了。
你可能想知道會發生什么,如果在你的MySQL數據庫,具有十分復雜的關系,當調換Couchbase,會導致相同的數據被嵌入在一個以上的Couchbase文件。
這可能發生,但它不是一件壞事。你不需要歸一化數據的NoSQL數據庫如Couchbase。然而,如果你真的擔心,那就混合這兩種方法?比如說customer_history保存沒有關系的數據
二、查尋方法不一樣
mysql
SELECT c.firstname, c.lastname, ca.city, ca.state FROM customer_address ca LEFT JOIN customer c ON ca.customer_id = c.id
couchbase
SELECT c.firstname, c.lastname, ca.city, ca.state FROM `bucket-name` ca LEFT JOIN `bucket-name` c ON KEYS ca.customer_id
不太一樣是吧。你可能也注意到,我們使用了兩次bucket-name,這是因為Couchbase沒有表的概念,并且所有不同的文檔和文檔類型都存儲在bucket中。這也是Couchbase特性所在。
我們再來看看插入數據有什么不一樣。
mysql
INSERT INTO customer (id, first_name, last_name)VALUES (1, 'Arun', 'Gupta');
Couchbase
INSERT INTO `bucket-name` (KEY, VALUE)VALUES ("1", {"first_name": "Arun", "last_name": "Gupta"});
三、連接數據庫方式不一樣
The MySQL JDBC Driver
在 Java 應用程序中,如果您想要連接到 MySQL 數據庫將使用 Java 數據庫連接器 (JDBC) 驅動程序。
像這樣
Couchbase
在使用 MySQL 時你有很多工具,你可以使用。例如,如果您想要對數據庫執行查詢,您可以使用 MySQL CLI。你仍然有使用類似的工具對 Couchbase 進行開關時的能力。如果你正在尋找一種命令行工具,您可以使用 CBQ 來查詢您的數據。如果你是 MySQL Workbench重度用戶,也無需擔心。因為在Couchbase中也有 Query workbench。
對于以上關于Mysql與Couchbase定義及區別分析,如果大家還有更多需要了解的可以持續關注我們億速云的行業推新,如需獲取專業解答,可在官網聯系售前售后的,希望該文章可給大家帶來一定的知識更新。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。