社区
MS-SQL Server
帖子详情
····是否需要额外索引的创建?····
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)
MySQL
索引
Re: MySQL
索引
============================ #
索引
的作用
索引
用于快速找出在某个列中有一特定值的行。不使用
索引
,MySQL 就会从第1条记录开始读完整个表,直至找出相关的行。表越大,查询数据所花费的时间越多...
mysql主键
索引
需要
创建
_mysql主键还
需要
建立
索引
吗?
当
创建
或设置主键的时候,mysql会自动添加一个与主键对应的唯一
索引
,不
需要
再做
额外
的添加。数据库管理系统对于主键会自动生成唯一
索引
,所以主键是一个特殊的
索引
。当你
创建
或设置主键的时候,mysql会自动添加一个...
Mysql主库还
索引
,MySQL主键还
需要
建立
索引
吗?
当
创建
或设置主键的时候,mysql会自动添加一个与主键对应的唯一
索引
,不
需要
再做
额外
的添加。数据库管理系统对于主键会自动生成唯一
索引
,所以主键是一个特殊的
索引
。当你
创建
或设置主键的时候,mysql会自动添加一个...
MySQL如何
创建
索引
?在哪些情况下应该
创建
索引
?性别这样的字段适合建
索引
吗?为什么?
在MySQL中,可以使用语句来
创建
索引
。其中,index_name是
索引
的名称,table_name是要
创建
索引
的表名,是要在
索引
中包含的列。
温故MySQL - 01
索引
是什么?为什么使用
索引
?
索引
的优缺点?
温故MySQL - 01
索引
是什么?为什么使用
索引
?
索引
的优缺点? 文章目录问题1:
索引
是什么?问题2:为什么使用
索引
?问题3:
索引
的优点?问题4:
索引
的缺点? 问题1:
索引
是什么? 答案:
索引
是帮助MySQL高效获取...
MS-SQL Server
34,593
社区成员
254,589
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章