国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

主鍵和聚集索引,單列索引和多列索引

2024-07-21 02:50:34
字體:
來源:轉載
供稿:網友
主鍵和聚集索引,單列索引和多列索引
文章目錄:1. 主鍵與聚集索引2. 多列索引和多個單列索引3. 覆蓋查詢4. 單個表中索引太多的負面影響

1. 主鍵與聚集索引

  主鍵等同于聚集索引嗎?(讀者:當然不是啦,如果是,微軟也不會叫兩個不同的名字啦?。?/p>

  首先,一個表只能有一個主鍵也只能有一個聚集索引,數據在物理上是按照聚集索引的順序來存放的。

  但是,主鍵可分為聚集的主鍵和非聚集的主鍵。在創建主鍵時,如果不指定類型,則默認創建的是聚集的主鍵。下面代碼是SqlServer自動生成的CREATE TABLE 代碼,注意設定主鍵那句話中的'CLUSTERED’,即表示聚集的主鍵。所以,主鍵并不等同于聚集索引,只有聚集的主鍵才是聚集索引。

CREATE TABLE [dbo].[User](    [Id] [int] IDENTITY(1,1) NOT NULL,    [SchoolId] [nvarchar](50) NOT NULL,    [StudentId] [nvarchar](50) NOT NULL,    [TimeLine] [nvarchar](50) NOT NULL,    [Name] [nvarchar](50) NULL,    [Phone] [nvarchar](50) NULL,    [Gender] [nvarchar](50) NULL,    [Age] [smallint] NULL,    [IdCard] [nvarchar](50) NULL,    [Nation] [nvarchar](50) NULL,    [Party] [nvarchar](50) NULL,    [Birthday] [nvarchar](50) NULL,    [Married] [nvarchar](50) NULL,    [School] [nvarchar](50) NULL,    [Degree] [nvarchar](50) NULL,    [PRovince] [nvarchar](50) NULL,    [City] [nvarchar](50) NULL,    [Area] [nvarchar](50) NULL,    [Address] [nvarchar](50) NULL,    [College] [nvarchar](50) NULL,    [Major] [nvarchar](50) NULL,    [Class] [nvarchar](50) NULL,    [Extra] [text] NULL,PRIMARY KEY CLUSTERED (    [Id] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

2. 多列索引和多個單列索引

  多列索引即是一個索引包含多個字段的情況;

  多個單列索引即是每個索引只包含一個字段,但是有多個索引。

  考慮兩種不同的建立索引方式:

  case 1:對c1,c2,c3三列按此順序添加一個多列索引;

  case 2: 對c1,c2,c3分別建立三個單列索引;

  問題1:按c1搜索時,哪種索引效率快?

  答:case2

  問題2:按C2搜索時,哪種索引效率快?

  答:case2,并且,case1的索引無效

  問題3:按C1,C2搜索時哪種效率快?

  答:不知道

  問題4:按C1,C2,C3搜索哪種效率快?

  答:case1

  問題5:按C2,C3,C1搜索時哪種效率快?

  答:case2,因為沒有按多列索引的順序搜索,case1的索引沒有使用到。

3. 覆蓋查詢

  所謂覆蓋查詢簡單的說就是所有查詢列被所使用的索引覆蓋的查詢。

4. 單個表中索引太多的負面影響

  當一個表存在多個(單列)索引,將造成Delete,update,insert操作需要花費大量的時間刪除索引和重建索引。

  通過把多個(單列)索引合并成一個(多列)索引后,測試得出Delete,update,insert操作時需要花費的時間大大縮短。但是這樣可能會對之前單列索引字段的查詢性能有影響。個中好處,權衡取舍。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大化| 中阳县| 建阳市| 西和县| 闸北区| 克东县| 普洱| 和龙市| 绥江县| 襄汾县| 鹿泉市| 丹阳市| 阳信县| 三台县| 洛浦县| 电白县| 分宜县| 和龙市| 崇左市| 阿拉善左旗| 始兴县| 辉南县| 汾西县| 保亭| 高安市| 平泉县| 二连浩特市| 巴青县| 禄劝| 宝坻区| 车致| 仙居县| 南昌县| 赤峰市| 海晏县| 齐河县| 昌黎县| 花莲县| 白城市| 苗栗县| 海宁市|