mssql字段值为0和1是有必要索引?

何小强 2013-06-28 02:19:02
有一表100W数据,有一字段值为0 OR 1,为数据总量差不多。
一般要用where 字段=1,这样查询。
这样的字段是否有必要建索引?
...全文
504 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
Faramitav 2015-11-01
  • 打赏
  • 举报
回复
数据多的话很有必要 我有个2亿左右数据的表就这种情况 不加索引基本查不出东西 加了索引很快就出来了
何小强 2013-07-02
  • 打赏
  • 举报
回复
引用 11 楼 helun2008 的回复:

select top 1000 * from ttrade_1 where validate=0

没有索引:
(1000 行受影响)
表 'ttrade_1'。扫描计数 1,逻辑读取 898 次,物理读取 0 次,预读 145884 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

10S返回1000条记录。

有索引:




(1000 行受影响)
表 'ttrade_1'。扫描计数 1,逻辑读取 4315 次,物理读取 9 次,预读 99 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

0S返回1000条记录。


昨天做的测试,发现还是有点用的。说明搜索时用到索引。速度上还有些提升。更新时感觉也没太大问题。
这个工具"新建查询"--》
不知道其它大虾们有什么意见。
叶子 2013-07-02
  • 打赏
  • 举报
回复
实践出真知!
走你_ 2013-07-02
  • 打赏
  • 举报
回复
引用 11 楼 helun2008 的回复:
select top 1000 * from ttrade_1 where validate=0 没有索引: (1000 行受影响) 表 'ttrade_1'。扫描计数 1,逻辑读取 898 次,物理读取 0 次,预读 145884 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 10S返回1000条记录。 有索引: (1000 行受影响) 表 'ttrade_1'。扫描计数 1,逻辑读取 4315 次,物理读取 9 次,预读 99 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 0S返回1000条记录。
你这界面是SQL里的哪个工具呀 跪求
大力水手 2013-07-01
  • 打赏
  • 举报
回复
如果有1亿个1,一个0,而每次都用这个0来做等值链接的时候有必要!嘿嘿
PB菜鸟 2013-07-01
  • 打赏
  • 举报
回复
引用 11 楼 helun2008 的回复:
select top 1000 * from ttrade_1 where validate=0 没有索引: (1000 行受影响) 表 'ttrade_1'。扫描计数 1,逻辑读取 898 次,物理读取 0 次,预读 145884 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 10S返回1000条记录。 有索引: (1000 行受影响) 表 'ttrade_1'。扫描计数 1,逻辑读取 4315 次,物理读取 9 次,预读 99 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。 0S返回1000条记录。
实践出真知啊。
何小强 2013-07-01
  • 打赏
  • 举报
回复

select top 1000 * from ttrade_1 where validate=0

没有索引:
(1000 行受影响)
表 'ttrade_1'。扫描计数 1,逻辑读取 898 次,物理读取 0 次,预读 145884 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

10S返回1000条记录。

有索引:




(1000 行受影响)
表 'ttrade_1'。扫描计数 1,逻辑读取 4315 次,物理读取 9 次,预读 99 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次。

0S返回1000条记录。

dw_chaoyue 2013-06-30
  • 打赏
  • 举报
回复
对于只有两个值得列没必要在该列上创建索引,这个不能充分发挥索引的作用,而且还有索引维护开销,得不偿失啊
jiang_you_3 2013-06-28
  • 打赏
  • 举报
回复
没必要,建了也不会变快
最爱午夜 2013-06-28
  • 打赏
  • 举报
回复
没有必要,这是因为低索引分布率,就没有必要建立索引,因为建立索引需要空间,它会导致其它性能的下降,同时索引还需要维护。
KevinLiu 2013-06-28
  • 打赏
  • 举报
回复
可以考虑Fiter index,只给1的创建索引
永远的伤 2013-06-28
  • 打赏
  • 举报
回复
这个你得测试一下吧
---涛声依旧--- 2013-06-28
  • 打赏
  • 举报
回复
我为为没有必要了
發糞塗牆 2013-06-28
  • 打赏
  • 举报
回复
你可以试试,不建的时候,看看执行计划,然后建个非聚集索引,再看看执行计划,如果都是扫描,那就没必要建了
lzw_0736 2013-06-28
  • 打赏
  • 举报
回复
肯定沒有必要建立索引.
天-笑 2013-06-28
  • 打赏
  • 举报
回复
貌似 没必要

34,593

社区成员

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

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