社区
MS-SQL Server
帖子详情
关于聚集索引
wzp144650
2011-11-25 02:49:28
加精
如果说聚集索引的B-TREE叶节点上包含的是数据行,那么,岂不是创建一个聚集索引将会复制整个表的数据?
就相当于一个表有10M大小,创建的聚集索引也是10M了?
...全文
1039
93
打赏
收藏
关于聚集索引
如果说聚集索引的B-TREE叶节点上包含的是数据行,那么,岂不是创建一个聚集索引将会复制整个表的数据? 就相当于一个表有10M大小,创建的聚集索引也是10M了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
93 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wine12
2011-12-09
打赏
举报
回复
应该不是楼主说得那样的吧
memoryshy
2011-12-06
打赏
举报
回复
从头看到尾,还是不懂,我要去钻一下
游北亮
2011-12-05
打赏
举报
回复
bs楼主,分给的不合理
hankanling123
2011-12-05
打赏
举报
回复
缺媳妇的郝
2011-12-04
打赏
举报
回复
正在学数据库中,关于大牛写的命令还不太懂,努力学习中……
ZHL351720237
2011-12-03
打赏
举报
回复
帮顶一下,看起来很费劲
zkj880917
2011-12-03
打赏
举报
回复
我去研究下啊
gaoyanan392071275
2011-12-03
打赏
举报
回复
还是没搞懂!!!!
gw6328
2011-12-02
打赏
举报
回复
建索引时要看你的写法了,你写一行就只有一个,如果你包含很多,那也就是你说的情况
如一个表三个字段
create index ixu_xxx on tb(c1) include(c2,c3)
或都直接就三列索引 on tb(c1,c2,c3)
就是全把表的三列都复制进去的,
zzg_gangge
2011-12-02
打赏
举报
回复
各位大侠usage是如何定义的在mfc usb串口编程中,急急急没分啦,所以不能发帖啦
zhang2xiaogang
2011-12-02
打赏
举报
回复
索引是非常重要的,那是不能马虎的。
learn_123
2011-12-02
打赏
举报
回复
君妞不给分我,junjun1984给分我!
游北亮
2011-12-02
打赏
举报
回复
你说的是非聚集索引了
[Quote=引用 79 楼 jinfengyiye 的回复:]
建索引时要看你的写法了,你写一行就只有一个,如果你包含很多,那也就是你说的情况
如一个表三个字段
create index ixu_xxx on tb(c1) include(c2,c3)
或都直接就三列索引 on tb(c1,c2,c3)
就是全把表的三列都复制进去的,
[/Quote]
昵称被占用了
2011-12-01
打赏
举报
回复
好像完美大叔都解释清楚了
补充一下:数据插入、更新都可能引起聚集索引的索引页和数据页的页拆分,大量的页拆分可能引起性能问题,所以在选择聚集索引字段就会有一些原则,比如一般情况下经常中间插入的字段不是很好的聚集索引字段,需要修改的字段一般就不能作为聚集索引字段等等。
米娅
2011-12-01
打赏
举报
回复
也研究研究
monkaaaaa
2011-12-01
打赏
举报
回复
这个东西有点意思
wzp144650
2011-11-30
打赏
举报
回复
[Quote=引用 58 楼 lweia 的回复:]
引用 56 楼 perfectaction 的回复:
引用 54 楼 lweia 的回复:
插入4
把4放新页里 当头
5从原页里拿出来
当新页尾
没有这个说法。
做个测试就可以
create table a_test
(aa int primary key)
insert into a_test(aa)
values(1)
inse……
[/Quote]
我测试了,真不多一页。
lweia
2011-11-30
打赏
举报
回复
不好意思
应该是
insert into a_test(aa)
values(5)
lweia
2011-11-30
打赏
举报
回复
[Quote=引用 56 楼 perfectaction 的回复:]
引用 54 楼 lweia 的回复:
插入4
把4放新页里 当头
5从原页里拿出来
当新页尾
没有这个说法。
[/Quote]
做个测试就可以
create table a_test
(aa int primary key)
insert into a_test(aa)
values(1)
insert into a_test(aa)
values(2)
declare @i int
set @i=10
while @i<100000
begin
insert into a_test(aa)
values(@i)
set @i=@i+1
end
然后
DBCC CHECKTABLE (a_test)
再然后
insert into a_test(aa)
values(2)
再
DBCC CHECKTABLE (a_test)
你会发现多了一页
游北亮
2011-11-30
打赏
举报
回复
DBCC IND和DBCC PAGE用法:
DBCC IND('数据库', '表名', 索引id)--即sys.indexes里的index_id
DBCC TRACEON (3604);
GO
DBCC PAGE (数据库, PageFID, PagePID, printopt={0|1|2|3}); --前2个参数是DBCC IND里的信息
GO
详细参考:
http://www.sqlskills.com/blogs/paul/post/Inside-the-Storage-Engine-Using-DBCC-PAGE-and-DBCC-IND-to-find-out-if-page-splits-ever-roll-back.aspx
加载更多回复(49)
MySQL 索引
# 索引的类型(诸多分类方式)
聚集索引
非
聚集索引
# 索引的设计原则 1) 索引并非越多越好。 2) 避免对经常更新的表进行过多的索引。 3) 数据量小的表最好不要使用索引。 4) 在条件表达式中经常用到的不同...
关于
聚集索引
和非
聚集索引
索引的优缺点: 优点加快访问速度,缺点带索引的表在数据库中需要更多的存储空间,操纵数据的命令需要更长的处理时间,因为它们需要对索引更新。(访问性能提高、维护性能降低)
聚集索引
和非
聚集索引
的根本区别:
聚集索引
和非
聚集索引
是表记录的排列顺序和与索引的排列顺序是否一致,
聚集索引
表记录的排列顺序与索引的排列顺序一致。 通俗点理
SQL Server 关于
聚集索引
的操作
一、简介 1.SQL Server默认为主键创建
聚集索引
,这样做有一定的好处,但是大部分都是一种浪费。因为一个表中只能创建一个
聚集索引
,而一般的表设计中主键很少会应用于查询,所以合理的创建主键就显得格外重要。我们可以将主键
聚集索引
删除,在其他更合理的字段上创建
聚集索引
; 2.创建于主键上的
聚集索引
是不可以通过Drop等语句来删除的,要想删除位于主键上的
聚集索引
,我们可以通过先删除主键约束,这样
聚集索引
和非
聚集索引
的区别
一、深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:
聚集索引
(clustered index,也称聚类索引、簇集索引)和非
聚集索引
(nonclustered index,也称非聚类索引、非簇集索引)。下面,我们举例来说明一下
聚集索引
和非
聚集索引
的区别: 其实,我们的汉语字典的正文本身就是一个
聚集索引
。比如,我们要查“安”字,因为“安”的拼音是...
MS-SQL Server
34,587
社区成员
254,588
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章