您好,登錄后才能下訂單哦!
這篇文章主要講解了“MYSQL JSON的用法介紹”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“MYSQL JSON的用法介紹”吧!
今天說的是MYSQL 的處理JSON 的方法,如果你不愿意使用MONGODB ,并且JSON 的數(shù)據(jù)存儲(chǔ)的量也不是很大,MYSQL 也是可以處理這樣的數(shù)據(jù)的,這個(gè)功能是從MYSQL 5.7 開始的,到8.0 向更先進(jìn)的方式發(fā)展,如果作為傳統(tǒng)數(shù)據(jù)庫的有益補(bǔ)充是OK的。
老習(xí)慣,我們做一個(gè)列子來開始說明
1 創(chuàng)建一個(gè)支持 JSON 的表,往 MYSQL 中插入相關(guān)的數(shù)據(jù)
從上圖來看,MYSQL進(jìn)行一個(gè)類似JSON 的數(shù)據(jù)存儲(chǔ)還是很方便的。對比MONGODB 的語法,其實(shí)對于傳統(tǒng)的DBA 會(huì)更親切一些。
從上圖中對簡單的JSON 的數(shù)據(jù)進(jìn)行查詢,并且進(jìn)行相關(guān)的計(jì)數(shù)操作也是很方便的。當(dāng)然如果你習(xí)慣了 MONGODB 的操作方法,則這樣的寫法可能覺得稍顯怪異。
而如果將JSON 的數(shù)據(jù)以 MYSQL 的方式進(jìn)顯示,則需要借助于MYSQL 為JSON 開發(fā)的一些函數(shù),例如 JSON_EXTRACT 下圖是 json1 中的數(shù)據(jù)
我們通過相關(guān)的函數(shù),將其查詢并且格式化為MYSQL 的顯示方式
當(dāng)然其實(shí)MYSQL 的JSON 也是支持索引查詢的,雖然和MONGODB 的索引比較,簡直是不值得一提,但是還是的提一下。
我們做下面的一個(gè)實(shí)驗(yàn)
創(chuàng)建一個(gè)表并插入大量的測試數(shù)據(jù) 100多條就可以
我們針對表test_features 建立一個(gè)虛擬列,綁定上面表中的JSON 列,
然后在虛擬列上添加索引(虛擬列分為兩種,我們用其中的一種)
我們對查詢進(jìn)行explain 可以看到執(zhí)行計(jì)劃中已經(jīng)走了索引
雖然MYSQL已經(jīng)支持了 JSON 格式的數(shù)據(jù)存儲(chǔ),并且也提供大量的函數(shù),也支持簡單的索引,但和MONGODB 這樣的純處理JSON 的數(shù)據(jù)庫相比,差距很大,如果僅僅是存儲(chǔ)一些簡單的JSON 數(shù)據(jù)并且量不是很大,個(gè)人感覺,MYSQL 可以作為一個(gè)補(bǔ)充,而如果要對JSON 數(shù)據(jù)進(jìn)行復(fù)雜的查詢,聚合,并且數(shù)據(jù)量較大的情況下,MONGODB 是一個(gè)好的選擇,當(dāng)然POSTGRESQL 也可以作為備選的方式。
感謝各位的閱讀,以上就是“MYSQL JSON的用法介紹”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對MYSQL JSON的用法介紹這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
免責(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)容。