····是否需要额外索引的创建?····

qq_13939330 2009-12-22 11:19:54
我一个表
学生名 课程名
张三 数学
张三 化学
张三 物理
李四 化学
李四 语文

这时就以 学生名+课程名 作为主键, 如果记录比较多,有上百万条, 查询又比较频繁
需要有额外索引吗??

比如查张三选修化学吗??等

...全文
163 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack_ailly 2009-12-22
  • 打赏
  • 举报
回复
Mirana_NightShade 2009-12-22
  • 打赏
  • 举报
回复
up
jack_ailly 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhujnt 的回复:]
不仅频繁的查询,也会频繁的插入,删除,三个索引行不?
[/Quote]那不能过度索引。
dawugui 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 zhujnt 的回复:]
不仅频繁的查询,也会频繁的插入,删除,三个索引行不?
[/Quote]
索引对查询,删除有作用.

对插入起副作用.
guguda2008 2009-12-22
  • 打赏
  • 举报
回复
大乌龟的领域,撤退
qq_13939330 2009-12-22
  • 打赏
  • 举报
回复
不仅频繁的查询,也会频繁的插入,删除,三个索引行不?
dawugui 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 zhujnt 的回复:]
比如又要查询张三是否选修了课?
if exist ( select * from 表名 where 学生名='张三' )
      print '修了'
[/Quote]
select 学生名 , '修了' from 表名 group by 学生名 having count(1) > 0

select 学生名 , '修了' from 表名 where 学生名='张三' group by 学生名 having count(1) > 0
cxinh 2009-12-22
  • 打赏
  • 举报
回复
可以加一个字段,如id号。
但是这样的话,又要额外考虑增加了表的容量等,lz你看着办吧。。
--小F-- 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhujnt 的回复:]
11楼这么多勋章,应该对的比较大:) 三个索引?

[/Quote]
看执行计划就知道了
qq_13939330 2009-12-22
  • 打赏
  • 举报
回复
比如又要查询张三是否选修了课?
if exist ( select * from 表名 where 学生名='张三' )
print '修了'
dawugui 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 zhujnt 的回复:]
11楼这么多勋章,应该对的比较大:) 三个索引?

[/Quote]
如果你需要频繁的查询上百万的表,建议你这么做.
qq_13939330 2009-12-22
  • 打赏
  • 举报
回复
11楼这么多勋章,应该对的比较大:) 三个索引?
xuqi2850661 2009-12-22
  • 打赏
  • 举报
回复
新手 进来学习学习
dawugui 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhujnt 的回复:]
我一个表
学生名    课程名
张三        数学
张三        化学
张三        物理
李四        化学
李四        语文

这时就以 学生名+课程名 作为主键, 如果记录比较多,有上百万条, 查询又比较频繁
需要有额外索引吗??

比如查张三选修化学吗??等


[/Quote]
那就建立三个索引
1.学生名
2.课程名
3.学生名+课程名
guguda2008 2009-12-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 zhujnt 的回复:]
如果查张三是否选修化学:
if exist( select * from 表名 where 学生名=‘张三’ and 课程名='化学' ????
[/Quote]
能用到索引
coderun 2009-12-22
  • 打赏
  • 举报
回复
呵呵
Mr_Nice 2009-12-22
  • 打赏
  • 举报
回复
不需要的,在运行语句的时候 ctrl + L 看看执行计划吧!
--小F-- 2009-12-22
  • 打赏
  • 举报
回复
楼主标题吓到我了
华夏小卒 2009-12-22
  • 打赏
  • 举报
回复
不是很明白
guguda2008 2009-12-22
  • 打赏
  • 举报
回复
不用,具体看计划。

另外小心冻着
加载更多回复(4)

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧