成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

GraphQL為何不是數據庫查詢方面的行業標準?

譯文
數據庫 其他數據庫
雖然許多技術領導者可能聽說過GraphQL,但對SQL(結構化查詢語言)可能更熟悉。SQL本質上是數據庫查詢方面的行業標準,不過GraphQL的風頭越來越勁。

?譯者 | 布加迪

審校 | 孫淑娟

GraphQL正迅速成為許多公司處理數據的首選查詢語言。雖然數據管理是許多公司最關心的問題之一,但許多人并不真正了解GraphQL的作用或為何如此大受歡迎。

全世界每天平均生成約2.5萬億字節的數據。企業需要一種方法來收集這些數據并有效地使用數據。大量數據在應用程序中生成(比如客戶服務智能手機應用程序讓客戶可以告訴您他們是否滿意,或者他們是否有任何問題、需要幫助排除問題)。應用程序需要一種將信息發送到后端的方法,即管理和存儲數據的工具。然后可以分析數據,發現問題、制定解決方案。當然這是雙向的。應用程序不僅將數據發送到后端,應用程序也需要來自后端的數據,比如推薦、交貨狀態、賬戶余額。這正是GraphQL擅長的:將數據發送到后端,并從后端獲取數據。它是一種更現代的API,可將應用程序連接到后端。

雖然許多技術領導者可能聽說過GraphQL,但對SQL(結構化查詢語言)可能更熟悉。SQL本質上是數據庫查詢方面的行業標準,不過GraphQL的風頭越來越勁。

GraphQL與SQL相比如何?有沒有辦法在執行查詢時做到兩者的好處兼而得之?

1.GraphQL vs SQL:全面比較

GraphQL有比較簡單、易讀的數據訪問格式。這種獨特的格式允許所謂的“嵌套”(nesting)。嵌套好比在一個問題中提出另一個問題,以獲得更具體的答案。比如說,您可能索要列出所有狗的列表以及這些狗各品種的嵌套詳細信息(從完全不同的數據源、甚至第三方數據源獲取),而不是僅僅索要列出某個棲息處的所有狗的列表。

QraphQL嵌套查詢的能力讓前端開發人員可以通過一個請求從API獲取相關信息。由于GraphQL幾乎是一種通用查詢語言,可以輕松處理不同的數據源,您還能同時查詢多個API及其他數據源。因此GraphQL是適合異構后端的查詢語言,這意味著除了數據庫外,后端還有不同類型的數據源。

作為一種數據庫查詢語言,SQL非常流行。遺憾的是,它并不像 GraphQL 那樣適用于跨異構數據的嵌套查詢。另外,SQL的語法可能很復雜。最后,SQL從未打算普遍通用。SQL適用于不同的數據庫,但不適用于API。

2.GraphQL與SQL的實際異同?

假設您在為公司的庫存補貨,需要知道從兩家不同公司發貨的兩筆不同訂單的跟蹤編號和預計交貨日期。GraphQL就能夠通過一個請求獲取所有這些信息。

GraphQL還以分層結構向您顯示該信息,分層結構使您可以輕松查看請求的數據之間的關系。換句話說,您可以看到包裹的交付日期與收到的跟蹤編號相關聯。

如果是SQL,您可能需要向數據庫發出一個請求,以獲取有關兩筆不同訂單的一般信息。然后,您可能需要對該信息進行分類以查找發貨公司的名稱,然后向每家發貨公司發出另一個請求,索要跟蹤編號。最后,根據跟蹤編號,您可能發出另一個請求,以獲取預期的交貨日期。獲取所有這些信息需要大量代碼,僅僅確保語法正確可能并非易事。幾十年來,本人一直與SQL數據庫打交道,連我都常常需要查詢復雜查詢的語法。

3.為什么SQL仍然如此流行?

GraphQL API模式僅允許一小部分操作,具體取決于實現該API的開發人員。換句話說,查詢的靈活性取決于API開發人員的靈活性。比如說,API只允許您通過電子郵件搜索客戶。要按城市搜索客戶,應用程序就需要收集所有客戶,然后一一過濾。

或者如果您在處理敏感數據,可能需要針對多個因素來配置查詢和API:比如控制誰可以訪問數據,或數據在后端緩存(臨時保存)多久。這樣的配置對于普通公司來說要求過高,但現在有許多技術可以為您管理和配置GraphQL查詢和API。這些技術使GraphQL成為了查詢API的可行選項,但如果沒有這些技術,配置可能很困難。

相比之下,SQL一開始更具表達力,這意味著它可以更輕松地告訴系統您想要什么,無需進行大量的額外配置。只需使用一行代碼,您可以輕松地查詢任何數據庫:“針對客戶 John Doe,請給我金額超過100美元的訂單”。無論數據庫結構如何,SQL都會為您提供所需的數據。

GraphQL允許在構建API的開發人員設置的框架內進行靈活查詢,而SQL允許對任何數據庫模型進行通用查詢。因此,如果您以查詢數據庫為主,SQL可以很好地完成工作。

4.有沒有辦法彌合鴻溝??

如果可以同時利用SQL的表達性和GraphQL 的靈活性,那將會怎樣?市面上有一些技術聲稱可以做到這一點,但它們不太可能變得流行起來,因為它們最終很笨拙很復雜。笨拙源于試圖將SQL構件(construct)強行塞入到GraphQL中。但它們是兩種不同的查詢語言,用途不同。如果開發人員必須學習如何在GraphQL中做SQL構件,還不如使用SQL并直接連接到數據庫。

然而,還有一線生機。我們認為,GraphQL會逐漸變得更具表達力。有一些方案旨在讓GraphQL更具表達力,這些方案最終可能會成為標準。但從根本上說,SQL和GraphQL各自看待世界的視角不一樣:統一的后端vs多樣化的后端,表vs.分層數據,通用查詢vs.有限查詢。因此,它們用途各異。

盡管GraphQL 作為一種API查詢語言很受歡迎,但它不會取代SQL這種數據庫訪問的主要語言。

原文鏈接:https://venturebeat.com/2022/08/04/graphql-is-a-big-deal-why-isnt-it-the-industry-standard-for-database-querying/?

責任編輯:武曉燕 來源: 51CTO技術棧
相關推薦

2021-07-26 09:20:18

數據中心管理員IT行業

2012-02-27 09:36:20

工信部數據中心行業標準

2024-01-18 09:28:26

泊車技術評測

2009-01-07 18:14:40

2012-08-20 14:13:16

2017-12-01 05:40:56

數據庫中間件join

2012-10-09 11:04:03

福布斯大數據Big Data

2012-10-12 09:39:32

大數據

2010-07-27 15:20:44

2021-09-28 17:48:20

MySQL主鍵索引

2020-06-23 12:28:29

快手

2021-10-13 10:21:28

云計算金融數據共享云應用

2010-05-12 15:41:21

MySQL數據庫

2013-04-01 09:03:50

IT大數據IBM

2011-05-23 16:12:39

私有云

2017-04-18 11:41:13

互聯網制造業

2012-04-05 09:41:00

2011-03-25 15:54:02

DB2數據庫初始調優設計

2019-10-08 09:49:57

數據庫備份恢復

2016-01-04 10:53:38

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: jizz视频| 欧美激情在线观看一区二区三区 | 国产精品久久 | 久久久久高清 | 四虎影院免费在线播放 | www.天天操| 亚洲毛片在线 | 午夜精品久久久久久久久久久久 | 亚洲黄色高清视频 | 特级丰满少妇一级aaaa爱毛片 | 黄色在线免费观看视频 | 欧美激情亚洲激情 | av中文在线 | 99re6在线视频精品免费 | 国产高清免费 | av在线免费观看网址 | 久久精品一区二区三区四区 | 国产免费一区二区三区最新6 | 粉嫩在线 | 国产精品a免费一区久久电影 | 天天插天天操 | 久久国产一区 | 成人久久18免费网站图片 | 自拍第1页| 成人欧美日韩一区二区三区 | 欧美国产日韩在线 | 免费a在线| 九九视频在线观看视频6 | 国产高清一区二区 | 亚洲激情一区二区三区 | 中文在线一区 | 欧美一区二区三区视频 | 欧美国产日韩一区 | 久久免费大片 | 亚洲精品一区在线观看 | 久久久久久久久久久久久久久久久久久久 | 在线国产中文字幕 | 国产欧美日韩精品一区二区三区 | 中文字幕亚洲欧美 | 九九热在线视频观看这里只有精品 | 天天操夜夜拍 |