复合索引,字段建立顺序。

wgybb 2008-03-31 10:59:55
有个表InfoMsg(ID[PK],tblName,InfoID,Title,Content,.....)
现在想在tblName和InfoID这两个字段上面建立一个复合索引。
tblName这个字段的值重复率比较高。
InfoID这个字段的值重复率相对tblName它来说比较低一些。

试问建立复合索引时候,用下面哪种方法会更好一些。
A:create index IX_tbl_info on infoMsg(tblName,InfoID)
B:create index IX_tbl_info on infoMsg(InfoID,tblName)


...全文
267 点赞 收藏 17
写回复
17 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
wenkaishun 2008-09-03
A:create index IX_tbl_info on infoMsg(tblName,InfoID)
B:create index IX_tbl_info on infoMsg(InfoID,tblName)
两个索引都用,sql会自动根据where条件选择最优。
回复
wgybb 2008-03-31
查询语句,肯定会和建索引的顺序保持一致的。

现在的问题是上面两个有区别吗,我搞不懂。
回复
wangxuelid 2008-03-31

'应该有一些关系,如果哪个A更好一些,关键你怎么关联或查询'
回复
wangxuelid 2008-03-31

'学习'
回复
ojuju10 2008-03-31
一样的,没有什么区别
回复
qsqtok 2008-03-31
这2个索引应该是一样的吧 只是顺序不通而已:注意的是查询的时候字段顺序跟索引一致


顶2楼 2005顺序颠倒了也能用到索引 学习了
回复
viva369 2008-03-31
[Quote=引用 2 楼 wzy_love_sly 的回复:]
刚测试

05颠倒顺序也还可以用到索引.....
[/Quote]

2000没那么笨吧
回复
wlinglong 2008-03-31
感觉B的方法应该比A 好
回复
-狙击手- 2008-03-31
得根据 你的查询语句来定
回复
dawugui 2008-03-31
[Quote=引用楼主 wgybb 的帖子:]
有个表InfoMsg(ID[PK],tblName,InfoID,Title,Content,.....)
现在想在tblName和InfoID这两个字段上面建立一个复合索引。
tblName这个字段的值重复率比较高。
InfoID这个字段的值重复率相对tblName它来说比较低一些。

试问建立复合索引时候,用下面哪种方法会更好一些。
A:create index IX_tbl_info on infoMsg(tblName,InfoID)
B:create index IX_tbl_info on infoMsg(InfoID,tblName)
[/Quote]
貌似一样.
回复
areswang 2008-03-31
索引列排序跟WHERE条件列一致
回复
wzy_love_sly 2008-03-31
刚测试

05颠倒顺序也还可以用到索引.....
回复
wzy_love_sly 2008-03-31
复合索引
infoMsg(tblName,InfoID)

select * from tb where tblName='a' and infoid='b'用索引
select * from tb where infoid='b' and tblName='a'不用索引
回复
flairsky 2008-03-31
我觉得是一样的阿,如果你查询顺序和索引一样

这种问题最好就用“查询命中率”来考虑。命中几率越大越好。
你这个不管怎么查,都是x*y的命中率,前提:查询顺序和索引一样
回复
nextflying 2008-03-31
a
回复
hui_hui_2007 2008-03-31
mark
回复
viva369 2008-03-31
如果查询条件中2列都包含则没区别.优化器会自动优化
如果查询条件中只有其中1列的话那就必须是定义在前面的列,不然的话该索引是无效的

--你可以测试下,看执行的是index seek 还是index scan
回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需求分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-31 10:59
社区公告
暂无公告