溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mysql與Couchbase定義及區(qū)別分析

發(fā)布時間:2020-04-28 10:55:49 來源:億速云 閱讀:271 作者:三月 欄目:數(shù)據(jù)庫

下文內(nèi)容主要給大家?guī)?a title="Mysql" target="_blank" href="http://kemok4.com/mysql/">Mysql與Couchbase定義及區(qū)別分析,這里所講到的知識,與書籍略有不同,都是億速云專業(yè)技術(shù)人員在與用戶接觸過程中,總結(jié)出來的,具有一定的經(jīng)驗(yàn)分享價值,希望給廣大讀者帶來幫助。

一、數(shù)據(jù)模型不同

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

以上兩張表和他們的列并不復(fù)雜,但他們之間任然通過主鍵和外鍵建立了關(guān)系。

Mysql與Couchbase定義及區(qū)別分析

Couchbase

{
    "type": "customer",
    "first_name": "Nic",
    "last_name": "Raboy"

}

{
    "type": "customer_address",
    "city": "San Francisco",
    "state": "CA",
    "zip": "94101",
    "customer_id": "c::1"

}
看起來是不是和關(guān)系數(shù)據(jù)有點(diǎn)像??
接下來看看內(nèi)嵌文檔,你還是不是這么認(rèn)為的。

Mysql與Couchbase定義及區(qū)別分析

這樣看起來和關(guān)系數(shù)據(jù)庫就非常不一樣了。通過JSON,我們可以在文檔內(nèi)嵌文檔。這樣我不就不用再新建一個了。
你可能想知道會發(fā)生什么,如果在你的MySQL數(shù)據(jù)庫,具有十分復(fù)雜的關(guān)系,當(dāng)調(diào)換Couchbase,會導(dǎo)致相同的數(shù)據(jù)被嵌入在一個以上的Couchbase文件。
這可能發(fā)生,但它不是一件壞事。你不需要?dú)w一化數(shù)據(jù)的NoSQL數(shù)據(jù)庫如Couchbase。然而,如果你真的擔(dān)心,那就混合這兩種方法?比如說customer_history保存沒有關(guān)系的數(shù)據(jù)

二、查尋方法不一樣

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,這是因?yàn)镃ouchbase沒有表的概念,并且所有不同的文檔和文檔類型都存儲在bucket中。這也是Couchbase特性所在。


我們再來看看插入數(shù)據(jù)有什么不一樣。

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"});


三、連接數(shù)據(jù)庫方式不一樣

The MySQL JDBC Driver

Java 應(yīng)用程序中,如果連接 MySQL 數(shù)據(jù)庫使用 Java 數(shù)據(jù)庫連接器 (JDBC) 驅(qū)動程序。

像這樣

Mysql與Couchbase定義及區(qū)別分析

Couchbase

Mysql與Couchbase定義及區(qū)別分析

使用 MySQL 很多工具,可以使用。例如,如果數(shù)據(jù)庫執(zhí)行查詢,可以使用 MySQL CLI。仍然使用類似工具 Couchbase 進(jìn)行開關(guān)能力。如果你正在尋找命令工具,可以使用 CBQ 查詢數(shù)據(jù)如果你是 MySQL Workbench重度用戶,也無需擔(dān)心。因?yàn)樵?/span>Couchbase中也有 Query workbench。

對于以上關(guān)于Mysql與Couchbase定義及區(qū)別分析,如果大家還有更多需要了解的可以持續(xù)關(guān)注我們億速云的行業(yè)推新,如需獲取專業(yè)解答,可在官網(wǎng)聯(lián)系售前售后的,希望該文章可給大家?guī)硪欢ǖ闹R更新。

 



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI