以下是建立索引與不建立索引的一個查詢效率分析:
Sqlserver索引與查詢效率分析。
表 News
字段
Id:自動編號
Title:文章標題
Author:作者
Content:內容
Star:優先級
Addtime:時間
記錄:100萬條
測試機器:P4 2.8/1G內存/IDE硬盤
方案1:
主鍵Id,默認為聚集索引,不建立其它非聚集索引
select * from News where Title like '%"&abigale&"%'
or Author like '%"&abigale&"%' order by Id desc
從字段Title和Author中模糊檢索,按Id排序
查詢時間:50秒
方案2:
主鍵Id,默認為聚集索引
在Title、Author、Star上建立非聚集索引
select * from News where Title like '"&abigale&"%'
or Author like '"&abigale&"%' order by Id desc
從字段Title和Author中模糊檢索,按Id排序
查詢時間:2 - 2.5秒
方案3:
主鍵Id,默認為聚集索引
在Title、Author、Star上建立非聚集索引
select * from News where Title like '"&abigale&"%'
or Author like '"&abigale&"%' order by Star desc
從字段Title和Author中模糊檢索,按Star排序
查詢時間:2 秒
方案4:
主鍵Id,默認為聚集索引
在Title、Author、Star上建立非聚集索引
select * from News where Title like '"&abigale&"%' or Author like '"&abigale&"%'
從字段Title和Author中模糊檢索,不排序查詢時間:1.8 - 2 秒
方案5:
主鍵Id,默認為聚集索引
在Title、Author、Star上建立非聚集索引
select * from News where Title like '"&abigale&"%'
或
select * from News where Author like '"&abigale&"%'
從字段Title 或 Author中檢索,不排序查詢時間:1秒