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

告別刻板印象:SQL是你應該掌握的技能!

數據庫 MySQL
根據筆者經驗,本文中的概念引用自Microsoft SQL Server,這些概念也適用于其他SQL數據庫管理系統。

本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。

據2020年JetBrains開發者生態系統調查顯示,有56%的開發者在開發中使用SQL數據庫或與SQL數據庫進行交互。但即便如此,大多數開發人員仍將SQL概念視為第二選擇,他們通常通過自己選擇的語言進行交互,而且在設計中作用不大。總而言之,能夠連接并運行基本查詢就足夠了。

許多公司甚至還有一個獨立的數據庫團隊,負責數據庫的設計和優化。筆者認為這是限制人們更深入地學習SQL的原因:很多人是這樣想的,SQL是別人使用的工具。軟件開發人員的工具夠多了。

但這個行業技多不壓身,你永遠不知道接下來遇到什么狀況。我們每天都與SQL進行交互,因此,儲備更多的知識有備無患。此外,如果所在的公司規模小、沒有足夠的數據庫團隊資源,那么你的責任將更大。在面試中展現出你對數據庫使用技巧很自信,會帶你通往許多有趣的職業方向。

相比較其他領域而言筆者更喜歡SQL開發。我早期的實習就是與一群杰出的數據庫管理員共事,從此愛上SQL。筆者在學校上過數據庫課程,因此有一些基本知識,但在實習期間學到的東西是無價的,不僅讓我意識到自己對數據的熱情,期間收獲的技術理解也為之后的每項工作大大增色。

數據庫開發和管理內容很多,相關專家也是妙筆生花,這些可以幫助開發人員(不會靈活運用SQL)在涉及到SQL知識時脫穎而出。根據筆者經驗,本文中的概念引用自Microsoft SQL Server,這些概念也適用于其他SQL數據庫管理系統。

規范化

如果你在學校選修過關系數據庫的課程,那你肯定見過“規范化”一詞。這是數據庫設計的核心概念。但更關鍵的是,它能使開發人員的生活更輕松。

數據庫規范化的主要思想是減少數據冗余并確保數據存儲整潔、有邏輯。數據庫規范化的級別取決于數據庫的“規范形式”。迄今有最多六種規范形式(有爭議),但實際需要了解的只是前三種。簡單來說,以下是主要規則:

第一范式(1NF)指出單個字段應存儲單個數據點,并且所有行均應唯一。不要在字段中存儲事物列表,這些屬于個人記錄。

第二范式(2NF)指出每個表應具有單個主鍵列。創建唯一的ID。不必使用名稱和地址作為復合鍵,只需給用戶提供唯一的ID號或GUID。

第三范式(3NF)指出不允許功能傳遞依賴項。這條可能是最復雜的一項,從本質上意味著如果有一個依賴于另一個字段的字段,則應將該字段分解到另一個表中。這允許外鍵更改-不能更改實際值。

這里的重點是數據應該是最小單位,因此具有重復數據的大表將拆分為具有易于搜索的鍵的較小表,從而使過濾更有效、查詢更直接,你的工作也會更加輕松!

數據庫對象

圖源:unsplash

如果你身兼數職,或者公司沒有數據庫團隊,那么你可能會負責數據庫開發。這種情況下,你應該不同情況下使用哪種類型的數據庫對象有很好的了解。簡言之,數據庫對象是可以使用創建腳本存儲或訪問數據的任何內容,最常見的例子就是表格,它是數據庫的組成部分。這些顯然是數據存儲的必經之路。

但是,還有其他類型的對象以不同的方式訪問和轉換數據。使用最好的對象進行工作很重要。下面是使用案例中應用對象的基本規則(索引本質上是數據庫對象,因為它們會影響數據的存儲和訪問方式):

存儲過程:這是處理或轉換數據的必經之路。如果需要在一天中的特定時間或以特定的節奏進行更新,則可以創建存儲過程,然后按程序運行。 ·

視圖:視圖本質上是一個存儲的查詢,可以從動態數據集中進行選擇。如果數據需要刷新或可能轉換,筆者常用視圖替換緩存的表。實際上并沒有存儲任何更改,但可以加入計算所得的字段,當你需要動態的最新數據時,視圖就是一個不錯的選擇。

了解了表、視圖和存儲過程之后,你將能夠處理大多數數據庫開發任務。

[[373440]]

圖源:unsplash

索引

首先需要了解的索引概念是聚集索引和非聚集索引之間的區別。

聚集索引:根據索引將所有數據存儲在表中。只能有一個聚集索引,默認情況下,主鍵為聚集。

非聚集索引:將索引字段與表分開存儲。該索引字段指向表中存儲的數據,就像書的索引一樣。

要提高查詢效率,就要增加存儲量。非聚集索引需要自己存儲,因為它們與表數據保持獨立。僅索引需要過濾或加入的字段,以便在存儲和性能之間找到最佳平衡。

索引編制是優化數據庫性能的最佳方法。索引會影響數據在頁面中的存儲方式。默認情況下,記錄不會以特定的順序存儲,因此本質上對字段建立索引就能使數據以可預測的方式存儲。在該字段上進行篩選時,查詢將運行得更快,因為SQL Server知道從那個確切的位置開始查找。

可以為特定目的在字段上設置許多索引,但是如果要提高性能,我們通常會創建通用的非聚集索引。此外,如果要創建索引,就必須進行維護,插入、更新和刪除會造成索引碎片。

因此,除非數據沒有更新,否則就需要根據數據更改的頻率來重建索引。理想情況下應該使用計劃的存儲過程來執行此操作,以便始終保持運行穩定。

創建索引的SQL語句非常簡單。下面的語句將在Orders表的給定字段上創建一個名為 idx_orderdate的非聚集索引:

  1. CREATE INDEX idx_orderdate ON Orders (OrderDate); 

讀取查詢計劃

如果想更深入地了解數據庫性能,讀取查詢計劃非常有用。運行查詢時,SQL Server會根據執行計劃對其進行處理。你可以在運行查詢時生成計劃,或者如果查詢已在運行,則查看緩存的計劃,可以查看在查詢的每個步驟上花費了多長時間。

有經驗的SQL向導可以從查詢計劃中讀取很多細微差別。但是,專業的開發人員需要知道的是搜索和掃描之間的區別。

  • 掃描:可以是索引掃描或表掃描,但是無論哪種方式,SQL Server都必須掃描整個表或索引以查找數據。
  • 搜索:對于索引搜索,SQL Server能夠基于給定的索引來識別要查詢的數據。

搜尋通常更有效。如果要優化查詢,則應確定查詢中掃描的位置并進行修復。解決它們的最簡單方法是確保加入了索引字段。

如果缺少查詢中可能使用的索引,SQL Server會發出通知。該建議將出現在查詢計劃的頂部。如果右鍵單擊建議索引的查詢計劃,然后選擇“缺少索引詳細信息”,甚至可以生成索引創建腳本。

[[373441]]

圖源:unsplash

恭喜,你已經提高了SQL技能!現在可以使用這些概念優化數據庫并更有效地進行查詢。無論是從應用程序中查詢還是構建自己的存儲過程和視圖,這些技巧都會使工作更加輕松!

 

責任編輯:趙寧寧 來源: 讀芯術
相關推薦

2021-01-05 14:27:12

SQL數據庫開發

2012-08-09 10:27:59

Web

2020-11-08 14:40:37

程序員編程

2023-08-08 08:08:42

PythonWeb開發

2020-04-22 13:41:33

數據結構大數據數據

2017-04-21 15:25:52

人工智能機器數字科學

2021-03-02 11:40:17

Windows微軟技巧

2019-12-24 16:52:22

Go語言騰訊TM函數

2024-10-16 13:30:00

2023-10-04 00:02:00

本文將從入門到精通,冒泡排序

2021-07-26 09:30:10

UbuntuLinux快捷鍵

2019-07-15 15:07:31

物聯網工程師物聯網IOT

2025-06-11 08:10:45

2025-04-03 09:56:40

Python算法開發

2023-09-06 13:16:00

數據庫數據

2022-03-15 10:10:41

IT技能人力資源IT領導者

2019-12-10 10:28:47

運維架構技術

2023-10-06 22:43:53

cronLinux系統

2023-12-04 08:01:05

2024-10-18 11:55:47

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本欧美国产 | 国产一区二区在线播放 | 国产日韩在线观看一区 | 精品在线观看一区二区 | 毛片网在线观看 | 日韩一区二区在线播放 | 久草中文在线 | 国产日韩欧美激情 | 国产成人免费视频网站高清观看视频 | 涩爱av一区二区三区 | 欧美激情欧美激情在线五月 | 亚洲国产精品久久久 | 国产一级片免费在线观看 | 中文福利视频 | 国产探花在线精品一区二区 | av色站| 国产精品69毛片高清亚洲 | 免费观看成人鲁鲁鲁鲁鲁视频 | 日本在线精品视频 | 久久久国产一区二区三区四区小说 | 午夜爱爱毛片xxxx视频免费看 | 99精品视频一区二区三区 | 免费观看黄 | 久草热8精品视频在线观看 午夜伦4480yy私人影院 | 福利网址 | 亚洲成人精品久久 | 五月精品视频 | 99久久99 | 亚洲第一区国产精品 | 91av在线免费观看 | 天天看逼 | 在线欧美 | 伊人免费观看视频 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 午夜网站视频 | 亚洲一区视频 | 在线观看www | 亚洲精品一区二区三区在线 | 久久久久久www | 国产精品一区二区av | 日韩精品成人在线 |