SQL Server介紹


學習文檔

SQL2016以上文檔

SQL2005至SQL2014文檔

SQL Server 驅動程序開發

集群

表變量和臨時表的比較

自己整理:數據庫調優

SQL server和MySql簡單對比

SQL server

  • Windows首選,跨平台性不好
  • 重量級
  • 功能豐富,性能略優
  • 不開源

MySql

  • Linux首選,跨平台性好
  • 輕量級
  • 功能少一點,性能略差
  • 開源

數據庫設計

主鍵

主鍵必須是唯一的,且要依賴索引,可以是聚集索引或者非聚集索引

索引

聚集索引

聚集索引基於聚集索引鍵按順序排序和存儲表或視圖中的數據行。 聚集索引按 B 樹索引結構實現,B 樹索引結構支持基於聚集索引鍵值對行進行快速檢索。

一個表只能有一個聚集索引

參考:B樹、B+樹詳解

非聚集索引

非聚集索引中的每個索引行都包含非聚集鍵值和行定位符。 此定位符指向聚集索引或堆中包含該鍵值的數據行。 索引中的行按索引鍵值的順序存儲,但是不保證數據行按任何特定順序存儲,除非對表創建聚集索引。

堆(沒有聚集索引的表)
列存儲索引

參考:SQL Server 列式存儲的優缺點

  • 大數據超長字段的模糊搜索like '%%'超快
  • 更新陳本高:適合更新不太頻繁的表

 

全文搜索

 

 

分區表、分表、分庫

參考:

MySQL數據庫之互聯網常用分庫分表方案

為什么需要分庫分表

MySQL分區表、分庫表原理和使用場景介紹

阿里P8架構師談:數據庫分庫分表、讀寫分離的原理實現,使用場景

分區表

參考:

MSSQL2008分區表

SQL Server表分區

概念:分區表是將大表的數據分成稱為分區的許多小的子集,類型有FAT16,FAT32,NTFS,exFAT,Ext2/3/4,HFS+,VMFS。另外,分區表的種類划分主要有:range(范圍)、list(列表)和hash(散列)分區。划分依據主要是根據其表內部屬性。同時,分區表可以創建其獨特的分區索引。倘若硬盤丟失了分區表,數據就無法按順序讀取和寫入,導致無法操作。

適合場景:

  • 單張表數據達到千萬級別的時候考慮分區表,一般按年或者按月分
  • 歷史數據不常用,一般只用最近日期數據的表,例如與時間有關的表:打卡記錄表、日志、消費記錄等

分表

適合場景:

  • 大數據量且訪問頻繁的表

分庫

 

Transact-SQL (T-SQL)

查詢

WITH common_table_expression(CTE)

概念:指定臨時命名的結果集,這些結果集稱為公用表表達式 (CTE)

使用范圍:可用於查詢語句、函數、視圖、存儲過程、觸發器

優點:

  • 提高代碼可讀性
  • 復用,提高性能
  • 可遞歸 (注意:默認遞歸次數是100,不建議更改此項,避免死循環)

 

分頁

參考:

SELECT - ORDER BY 子句

分頁實現:Offset-Fetch

 

XML

 

事務

參考:

事務

事務鎖定和行版本控制指南

SQL事務

 

安全性

 

管理、監視和優化

管理

監視

優化

 

架構 SCHEMA

可以自定義架構,預定義的架構有:

  • dbo:最常見,表、視圖、存儲過程、函數等,默認都是使用dbo架構
  • sys
  • guest
  • INFORMATION_SCHEMA


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM