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

告別刻板印象:SQL是你必須掌握的技能

數據庫 SQL Server
據2020年JetBrains開發者生態系統調查顯示,有56%的開發者在開發中使用SQL數據庫或與SQL數據庫進行交互。但即便如此,大多數開發人員仍將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)指出不允許功能傳遞依賴項。這條可能是最復雜的一項,從本質上意味著如果有一個依賴于另一個字段的字段,則應將該字段分解到另一個表中。這允許外鍵更改-不能更改實際值。

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

數據庫對象

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

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

  • 存儲過程:這是處理或轉換數據的必經之路。如果需要在一天中的特定時間或以特定的節奏進行更新,則可以創建存儲過程,然后按程序運行。
  • 視圖:視圖本質上是一個存儲的查詢,可以從動態數據集中進行選擇。如果數據需要刷新或可能轉換,筆者常用視圖替換緩存的表。實際上并沒有存儲任何更改,但可以加入計算所得的字段,當你需要動態的最新數據時,視圖就是一個不錯的選擇。

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

 

索引

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

  • 聚集索引:根據索引將所有數據存儲在表中。只能有一個聚集索引,默認情況下,主鍵為聚集。
  • 非聚集索引:將索引字段與表分開存儲。該索引字段指向表中存儲的數據,就像書的索引一樣。

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

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

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

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

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

 

  1. CREATE INDEX idx_orderdate ON Orders (OrderDate); 

讀取查詢計劃

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

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

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

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

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

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

 

責任編輯:華軒 來源: 讀芯術
相關推薦

2021-01-04 10:04:23

SQL數據庫開發

2025-06-11 08:10:45

2020-11-08 14:40:37

程序員編程

2010-09-08 09:19:54

2017-12-06 10:43:51

程序員軟技能

2018-01-31 22:30:05

數據科學家數據專家工程師

2023-08-08 08:08:42

PythonWeb開發

2012-07-10 09:39:28

2021-07-18 08:23:47

校招git編程

2019-06-20 17:39:12

Android啟動優化

2011-05-12 13:00:10

Web開發者

2016-12-06 08:20:27

科技新聞早報

2020-12-10 11:00:37

JavaJVM命令

2021-10-21 08:13:11

Springboot

2011-05-20 10:26:51

2017-03-30 16:03:06

Linux運維工程師技能

2024-10-16 13:30:00

2021-03-02 11:40:17

Windows微軟技巧

2020-04-08 17:10:03

GitHub代碼開源

2020-08-11 17:14:31

數據庫SQL技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av一二三区 | 久久av一区二区 | 91九色麻豆 | 欧美久久一区 | 在线精品国产 | 久久精品日 | 免费毛片网站在线观看 | 欧美色综合天天久久综合精品 | 激情综合五月 | 美女在线视频一区二区三区 | 草久久 | 亚洲 中文 欧美 日韩 在线观看 | 精品视频免费 | 亚洲视频一区在线观看 | 99精品久久| 久久久久久久香蕉 | 久久精品国产亚洲夜色av网站 | 日本久久精品 | 久久国产精品偷 | 成人伊人网| 国产日韩欧美一区 | 国产精品福利在线观看 | 欧美电影免费观看 | 欧美一级视频在线观看 | 免费观看av| 亚洲精品一区二区网址 | 日韩成人性视频 | 国产欧美日韩一区二区三区 | 久久久久国产一区二区三区四区 | 在线中文字幕亚洲 | 日本三级电影免费观看 | 国产一区二区三区高清 | 日韩av高清在线 | 亚洲va欧美va天堂v国产综合 | 亚洲 欧美 日韩在线 | 亚洲欧美日韩国产综合 | 99这里只有精品视频 | 久久在线| 一区二区三区四区不卡 | 精品国产一区二区三区四区在线 | 亚洲国产日韩一区 |