日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Json數(shù)據(jù)庫的優(yōu)勢及使用原因 (為什么用使用json數(shù)據(jù)庫)

Json數(shù)據(jù)庫在近年來的技術(shù)發(fā)展中,已經(jīng)逐漸成為廣大開發(fā)者的重要工具之一。由于其具有許多優(yōu)勢,Json數(shù)據(jù)庫現(xiàn)已廣泛應(yīng)用于各種應(yīng)用軟件和系統(tǒng)中。本文就進(jìn)行深入探討,使讀者更好地了解Json數(shù)據(jù)庫及其在實(shí)際開發(fā)中的應(yīng)用。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了邕寧免費(fèi)建站歡迎大家使用!

一、Json數(shù)據(jù)庫的優(yōu)勢

1、易于操作

Json數(shù)據(jù)庫中的數(shù)據(jù)存儲(chǔ)方式與面向?qū)ο缶幊滔嗨?。因此,它對于開發(fā)者而言非常易于操作。相較于傳統(tǒng)數(shù)據(jù)庫,Json數(shù)據(jù)庫的編寫、測試和維護(hù)相對簡單,易于使用。

2、數(shù)據(jù)結(jié)構(gòu)靈活

Json數(shù)據(jù)庫中可以存儲(chǔ)各種不同數(shù)據(jù)類型(例如字符串、數(shù)字、布爾值、數(shù)組和對象等),可以快速適應(yīng)任何數(shù)據(jù)結(jié)構(gòu)的變化。此外,Json數(shù)據(jù)庫中的數(shù)據(jù)可以隨時(shí)進(jìn)行修改、刪除或添加,并且不需要復(fù)雜的SQL語句。

3、數(shù)據(jù)可讀性強(qiáng)

由于Json數(shù)據(jù)庫中的數(shù)據(jù)格式為鍵值對,因此數(shù)據(jù)的可讀性更強(qiáng)。開發(fā)人員可以輕松地閱讀Json數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù),而無需使用SQL查詢語句。

4、數(shù)據(jù)查詢速度快

Json數(shù)據(jù)庫的查詢速度相對較快,因?yàn)閿?shù)據(jù)存儲(chǔ)為二進(jìn)制格式,可以快速進(jìn)行數(shù)據(jù)檢索。此外,Json數(shù)據(jù)庫還支持各種索引類型(包括基于文本和基于位置的索引等不同類型),可以更快地查找數(shù)據(jù)。

5、數(shù)據(jù)存儲(chǔ)量大

Json數(shù)據(jù)庫支持NoSQL數(shù)據(jù)庫,可以處理大量數(shù)據(jù)的存儲(chǔ)和管理,而無需使用傳統(tǒng)數(shù)據(jù)庫查詢的繁瑣操作。傳統(tǒng)上,關(guān)系數(shù)據(jù)庫通常受到存儲(chǔ)數(shù)據(jù)的限制,但使用Json數(shù)據(jù)庫可以輕松地存儲(chǔ)大量的數(shù)據(jù)。

二、Json數(shù)據(jù)庫的使用原因

1、易于維護(hù)

Json數(shù)據(jù)庫的操作相對于傳統(tǒng)數(shù)據(jù)庫管理系統(tǒng),更加簡單方便。因?yàn)镴son數(shù)據(jù)庫的存儲(chǔ)格式就是普通的文本,開發(fā)者可以直接使用代碼讀取、修改、刪除或者添加數(shù)據(jù)。它無需使用復(fù)雜的SQL語句,也不需要使用特殊的數(shù)據(jù)庫訪問協(xié)議(如ODBC或JDBC)。

2、應(yīng)用場景廣泛

Json數(shù)據(jù)庫的使用場景較廣泛,適用于各種類型的應(yīng)用軟件和系統(tǒng)。例如:網(wǎng)頁應(yīng)用程序,通訊軟件,游戲等等。在這些應(yīng)用中,Json數(shù)據(jù)庫可以快速處理、存儲(chǔ)和查詢數(shù)據(jù),從而改善系統(tǒng)性能并提高用戶體驗(yàn)。

3、數(shù)據(jù)安全可靠

Json數(shù)據(jù)庫可支持?jǐn)?shù)據(jù)備份和恢復(fù)特性。如果數(shù)據(jù)在某個(gè)時(shí)刻遭到損壞或丟失,可以使用此功能恢復(fù)原始數(shù)據(jù)。此外,Json數(shù)據(jù)庫還支持?jǐn)?shù)據(jù)空間的分離,使得開發(fā)者可以輕松地控制數(shù)據(jù)的訪問權(quán)限。

4、提高工作效率

Json數(shù)據(jù)庫的操作簡單、快速,同時(shí)其靈活性極高,使開發(fā)者能夠快速開發(fā)高質(zhì)量的應(yīng)用程序。在Json數(shù)據(jù)庫的幫助下,開發(fā)者們能夠更好的完成數(shù)據(jù)管理及處理任務(wù),提高工作效率。

5、免費(fèi)開源

Json數(shù)據(jù)庫是一個(gè)開放源碼軟件,完全免費(fèi)。不需要支付任何使用費(fèi)用,并且隨著技術(shù)的發(fā)展,開源社區(qū)也在不斷完善和升級(jí) Json數(shù)據(jù)庫。

三、結(jié)論

綜上所述,Json數(shù)據(jù)庫具有易于操作、數(shù)據(jù)可讀性強(qiáng)、數(shù)據(jù)查詢速度快以及支持NoSQL數(shù)據(jù)庫等優(yōu)勢。同時(shí),Json數(shù)據(jù)庫的使用原因包括易于維護(hù)、應(yīng)用場景廣泛、數(shù)據(jù)安全可靠、提高工作效率以及免費(fèi)開源等。Json數(shù)據(jù)庫的飛速發(fā)展也為開發(fā)者們提供了更強(qiáng)的競爭力。

Json數(shù)據(jù)庫的適用環(huán)境與傳統(tǒng)的數(shù)據(jù)庫有所不同,但并不是所有的應(yīng)用程序或者系統(tǒng)都適合使用 Json數(shù)據(jù)庫。開發(fā)者們應(yīng)該充分考慮到自己的應(yīng)用場景,充分了解 Json數(shù)據(jù)庫的優(yōu)勢和限制,再謹(jǐn)慎選擇使用。

相關(guān)問題拓展閱讀:

  • mysql使用什么類型存json數(shù)據(jù)?

mysql使用什么類型存json數(shù)據(jù)?

ON (JavaScriptObject Notation) 是一種輕量級(jí)的數(shù)據(jù)交換格式,主要用于傳送數(shù)據(jù)。ON采用了獨(dú)立于語言的文本格式,類似XML,但是比XML簡單,易讀并且易編寫。對機(jī)器來說易于仿悉鄭解析和生成,并且會(huì)減少網(wǎng)絡(luò)帶寬的傳輸。由于ON格式可以解耦javascript客戶端應(yīng)用與Restful服務(wù)器端的方法調(diào)用,因而在互聯(lián)網(wǎng)應(yīng)用中被大量使用。

ON的格式非常簡單:名稱/鍵值。之前MySQL版本里面要實(shí)現(xiàn)這樣的存儲(chǔ),要么用VARCHAR要么用TEXT大文本。 MySQL5.7發(fā)布后,專門設(shè)計(jì)了ON數(shù)據(jù)類型以及關(guān)于這種類型的檢索以及其他函數(shù)解析。我們先看看MySQL老版本的ON存取。

示例表結(jié)構(gòu):

CREATE TABLE json_test(

id INT,

person_desc TEXT

)ENGINE INNODB;

我們來插入一條記錄:

INSERT INTO json_test VALUES (1,'{

“programmers”:

“firstName”: “Brett”,

“l(fā)astName”: “McLaughlin”,

“email”: “aaaa”

}, {

“firstName”: “Jason”,

“l(fā)astName”: “Hunter”,

“email”: “bbbb”

}, {

“firstName”: “Elliotte”,

“l(fā)astName”: “Harold”,

“email”: “cccc”

}>,

“authors”:

“firstName”: “Isaac”,

“l(fā)astName”: “Asimov”,

“genre”: “sciencefiction”

}, {

“firstName”: “Tad”,

“l(fā)astName”: “Williams”,

“genre”:”fantasy”

}, {

“firstName”: “Frank”,

“l(fā)astName”: “Peretti”,

“genre”: “christianfiction”

}>,

“musicians”:

“firstName”: “Eric”,

“l(fā)astName”: “Clapton”,

“instrument”: “guitar”

}, {

“firstName”: “Sergei”,

“l(fā)astName”: “Rachmaninoff”,

“instrument”: “piano”

}>

}’);

那一般我們遇到這樣來存儲(chǔ)ON格式的話,只能把這條記錄取出來交個(gè)應(yīng)用程序,由應(yīng)用程

來解析備頌。如此一來陸改,ON又和特定的應(yīng)用程序耦合在一起,其便利性的優(yōu)勢大打折扣。

現(xiàn)在到了MySQL5.7,可以支持對ON進(jìn)行屬性的解析,我們重新修改下表結(jié)構(gòu):

ALTER TABLE json_test MODIFY person_desc json;

先看看插入的這行ON數(shù)據(jù)有哪些KEY:

mysql> SELECT id,json_keys(person_desc) as “keys” FROM json_test\G

*************************** 1. row***************************

id: 1

keys:

1 row in set (0.00 sec)

我們可以看到,里面有三個(gè)KEY,分別為authors,musicians,programmers。那現(xiàn)在找一

KEY把對應(yīng)的值拿出來:

mysql> SELECT json_extract(AUTHORS,’$.lastName’) AS ‘name’, AUTHORS FROM

-> (

-> SELECT id,json_extract(person_desc,’$.authors’) AS “authors” FROM json_test

->UNION ALL

-> SELECT id,json_extract(person_desc,’$.authors’) AS “authors” FROM json_test

-> UNION ALL

-> SELECT id,json_extract(person_desc,’$.authors’) AS “authors” FROM json_test

-> ) AS T1

-> ORDER BY NAME DESC\G

*************************** 1. row***************************

name:”Williams”

AUTHORS: {“genre”: “fantasy”,”lastName”: “Williams”, “firstName”:”Tad”}

*************************** 2. row***************************

name:”Peretti”

AUTHORS: {“genre”:”christianfiction”, “l(fā)astName”: “Peretti”,”firstName”:

“Frank”}*************************** 3. row***************************

name:”Asimov”

AUTHORS: {“genre”: “sciencefiction”,”lastName”: “Asimov”, “firstName”:”Isaac”}

3 rows in set (0.00 sec)

現(xiàn)在來把詳細(xì)的值羅列出來:

mysql> SELECT

->json_extract(AUTHORS,’$.firstName’) AS “firstname”,

-> json_extract(AUTHORS,’$.lastName’)AS “l(fā)astname”,

-> json_extract(AUTHORS,’$.genre’) AS”genre”

-> FROM

-> (

-> SELECT id,json_extract(person_desc,’$.authors’)AS “authors” FROM json

_test

-> ) AS T\G

*************************** 1. row***************************

firstname: “Isaac”

lastname:”Asimov”

genre:”sciencefiction”

1 row in set (0.00 sec)

我們進(jìn)一步來演示把a(bǔ)uthors 這個(gè)KEY對應(yīng)的所有對象刪掉。

mysql> UPDATE json_test

-> SET person_desc =json_remove(person_desc,’$.authors’)\G

Query OK, 1 row affected (0.01 sec)

Rows matched: 1 Changed: 1  Warnings: 0

查找下對應(yīng)的KEY,發(fā)現(xiàn)已經(jīng)被刪除掉了。

mysql> SELECT json_contains_path(person_desc,’all’,’$.authors’)as authors_exists FROM

json_test\G

*************************** 1. row***************************

authors_exists: 0

1 row in set (0.00 sec)

總結(jié)下,雖然MySQL5.7開始支持ON數(shù)據(jù)類型,但是我建議如果要使用的話,更好是把這的值取出來,然后在應(yīng)用程序段來計(jì)算。畢竟數(shù)據(jù)庫是用來處理結(jié)構(gòu)化數(shù)據(jù)的,大量的未預(yù)先定義schema的json解析,會(huì)拖累數(shù)據(jù)庫的性能。

我們知道,ON是一種輕量級(jí)的數(shù)據(jù)交互的格式,大部分NO SQL數(shù)據(jù)庫的存儲(chǔ)都用ON。MySQL從5.7開始支持ON格式的數(shù)據(jù)存儲(chǔ),并且新增了很多ON相關(guān)函數(shù)。MySQL 8.0 又閉畢帶來了一個(gè)新的把ON轉(zhuǎn)換為TABLE的函數(shù)ON_TABLE,實(shí)現(xiàn)了ON到表的轉(zhuǎn)換。

舉例一

我們看下簡單的例子:

簡單定義一個(gè)兩級(jí)ON 對象

mysql> set @ytt='{“name”:}’;Query OK, 0 rows affected (0.00 sec)

之一級(jí):

mysql> select json_keys(@ytt);+—+| json_keys(@ytt) |+—+| |+—+1 row in set (0.00 sec)

第二級(jí):

mysql> select json_keys(@ytt,’$.name’);+-+| json_keys(@ytt,’$.name’) |+-+|    |+-+1 row in set (0.00 sec)

我們使用MySQL 8.0 的ON_TABLE 來轉(zhuǎn)換 @ytt。

mysql> select * from json_table(@ytt,’$.name’ columns (f1 varchar(10) path ‘$.a’, f2 varchar(10) path ‘$.b’)) as tt;

+++

| f1    | f2     |

+++

| ytt   | action |

| dble  | shard  |

| mysql | oracle |

+++

3 rows in set (0.00 sec)

舉例二

再來一個(gè)復(fù)雜點(diǎn)的例子,碰早用的是EXPLAIN 的ON結(jié)果集。

ON 串 @json_str1。

set @json_str1 = ‘ {  “query_block”: {    “select_id”: 1,    “cost_info”: {      “query_cost”: “1.00”    },    “table”: {      “table_name”: “bigtable”,      “access_type”: “const”,      “possible_keys”: ,      “key”: “id”,      “used_key_parts”: ,      “key_length”: “8”,      “ref”: ,      “rows_examined_per_scan”: 1,      “rows_produced_per_join”: 1,      “filtered”: “100.00”,      “cost_info”: {“read_cost”: “0.00”,”eval_cost”: “0.20”,”prefix_cost”: “0.00”,”data_read_per_join”: “176”      },      “used_columns”:    }  }}’;

之一級(jí):

mysql> select json_keys(@json_str1) as ‘first_object’;+—+| first_object    |+—+| |+—+1 row in set (0.00 sec)

第二級(jí):

mysql> select json_keys(@json_str1,’$.query_block’) as ‘second_object’;++| second_object|++| |++1 row in set (0.00 sec)

第三級(jí):

mysql>  select json_keys(@json_str1,’$.query_block.table’) as ‘third_object’\G*************************** 1. row ***************************third_object: 1 row in set (0.01 sec)

第四級(jí):

mysql> select json_extract(@json_str1,’$.query_block.table.cost_info’) as ‘forth_object’\G*************************** 1. row ***************************forth_object: {“eval_cost”:”0.20″,”read_cost”:”0.00″,”prefix_cost”:”0.00″,”data_read_per_join”:”176″}1 row in set (0.00 sec)

那我們把這個(gè)ON 串轉(zhuǎn)換為表。

SELECT * FROM ON_TABLE(@json_str1,

“$.query_block”

COLUMNS(

rowid FOR ORDINALITY,

NESTED PATH ‘$.table’

COLUMNS (

a1_1 varchar(100) PATH ‘$.key’,

a1_2 varchar(100) PATH ‘$.ref’,

a1_3 varchar(100) PATH ‘$.filtered’,

nested path ‘$.cost_info’

columns (

a2_1 varchar(100) PATH ‘$.eval_cost’ ,

a2_2 varchar(100) PATH ‘$.read_cost’,

a2_3 varchar(100) PATH ‘$.prefix_cost’,

a2_4 varchar(100) PATH ‘$.data_read_per_join’

),

a3 varchar(100) PATH ‘$.key_length’,

a4 varchar(100) PATH ‘$.table_name’,

a5 varchar(100) PATH ‘$.access_type’,

a6 varchar(100) PATH ‘$.used_key_parts’,

a7 varchar(100) PATH ‘$.rows_examined_per_scan’,

a8 varchar(100) PATH ‘$.rows_produced_per_join’,

a9 varchar(100) PATH ‘$.key’

),

NESTED PATH ‘$.cost_info’

columns (

b1_1 varchar(100) path ‘$.query_cost’

),

c INT path “$.select_id”

)

) AS tt;

++——+++——+——+——+——+——+++——+——+——+——+——+——+

| rowid | a1_1 | a1_2  | a1_3   | a2_1 | a2_2 | a2_3 | a2_4 | a3   | a| a5    | a6   | a7   | a8   | a9   | b1_1 | c    |

++——+++——+——+——+——+——+++——+——+——+——+——+——+

|| id   | const | 100.00 | 0.20 | 0.00 | 0.00 | 176  | 8    | bigtable | const | id   | 1    | 1    | id   | NULL |    1 |

|| NULL | NULL  | NULL   | NULL | NULL | NULL | NULL | NULL | NULL     | NULL  | NULL | NULL | NULL | NULL | 1.00 |    1 |

++——+++——+——+——+——+——+++——+——+——+——+——+——+

2 rows in set (0.00 sec)

關(guān)于為什么用使用json數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。

成都網(wǎng)站設(shè)計(jì)制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計(jì),成都網(wǎng)站設(shè)計(jì)服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開發(fā),營銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。


分享文章:Json數(shù)據(jù)庫的優(yōu)勢及使用原因 (為什么用使用json數(shù)據(jù)庫)
網(wǎng)址分享:http://www.dlmjj.cn/article/codpppo.html