SQL Server介绍

学习文档

SQL2016以上文档

SQL2005至SQL2014文档

SQL Server 驱动程序开发

集群

自己整理:数据库调优

SQL server和MySql简单对比

SQL server

  • Windows首选,跨平台性不好
  • 重量级
  • 功能丰富,性能略优
  • 不开源

MySql

  • Linux首选,跨平台性好
  • 轻量级
  • 功能少一点,性能略差
  • 开源

数据库设计

主键

主键必须是唯一的,且要依赖索引,可以是聚集索引或者非聚集索引

索引

聚集索引

聚集索引基于聚集索引键按顺序排序和存储表或视图中的数据行。 聚集索引按 B 树索引结构实现,B 树索引结构支持基于聚集索引键值对行进行快速检索。

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

参考:B树、B+树详解

非聚集索引

非聚集索引中的每个索引行都包含非聚集键值和行定位符。 此定位符指向聚集索引或堆中包含该键值的数据行。 索引中的行按索引键值的顺序存储,但是不保证数据行按任何特定顺序存储,除非对表创建聚集索引。

堆(没有聚集索引的表)

分区表、分表、分库

参考:

MySQL数据库之互联网常用分库分表方案

为什么需要分库分表

MySQL分区表、分库表原理和使用场景介绍

阿里P8架构师谈:数据库分库分表、读写分离的原理实现,使用场景

分区表

参考:

MSSQL2008分区表

SQL Server表分区

 

概念:分区表是将大表的数据分成称为分区的许多小的子集,类型有FAT16,FAT32,NTFS,exFAT,Ext2/3/4,HFS+,VMFS。另外,分区表的种类划分主要有:range(范围)、list(列表)和hash(散列)分区。划分依据主要是根据其表内部属性。同时,分区表可以创建其独特的分区索引。倘若硬盘丢失了分区表,数据就无法按顺序读取和写入,导致无法操作。

适合场景:

  • 单张表数据达到千万级别的时候考虑分区表,一般按年或者按月分
  • 历史数据不常用,一般只用最近日期数据的表,例如与时间有关的表:打卡记录表、日志、消费记录等

分表

适合场景:

  • 大数据量且访问频繁的表

分库

Transact-SQL (T-SQL)

查询

分页

参考:

SELECT - ORDER BY 子句

分页实现:Offset-Fetch

事务

参考:

事务

事务锁定和行版本控制指南

SQL事务

安全性

架构 SCHEMA

可以自定义架构,预定义的架构有:

  • dbo:最常见,表、视图、存储过程、函数等,默认都是使用dbo架构
  • sys
  • guest
  • INFORMATION_SCHEMA
原文地址:https://www.cnblogs.com/qingyunye/p/14219021.html