复合索引

nanjingnew4 2012-12-17 11:20:28
问一下索引建立的问题
select * from t where a=1
select * from t where a=1 and b=1
select * from t where,a,b,c

爪机不方便,看的不舒服还请见谅
问题就是索引该怎么建立,是abc3个字段建一个复合索引3个select一起用,还是建立3个索引。实际情况是版本中用到了6到7个不同的where条件,如果建立太多的话是不是update开销很大.

...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
nanjingnew4 2012-12-17
  • 打赏
  • 举报
回复
如果where条件是a,b,c,d 复合索引 abc有用么?
shadow1986a 2012-12-17
  • 打赏
  • 举报
回复
楼上的已经回答很清楚了,一般来说一个表中有4,5个常用索引字段就行了。
睿智天成 2012-12-17
  • 打赏
  • 举报
回复
通常来说,表的索引越多,其查询的速度也就越快。但是,表的更新速度则会降低。这主要是因为表的更新(如往表中插入一条记录)速度,反而随着索引的增加而增加。这主要是因为,在更新记录的同时需要更新相关的索引信息。为此,到底在表中创建多少索引合适,就需要在这个更新速度与查询速度之间取得一个均衡点。
langxingcs 2012-12-17
  • 打赏
  • 举报
回复
可以用到。索引太多update开销也大
fw0124 2012-12-17
  • 打赏
  • 举报
回复
abc3个字段建一个复合索引就行。 如果where条件是a,b,c,d 复合索引abc也是可以用到的。
nanjingnew4 2012-12-17
  • 打赏
  • 举报
回复
4L,复合索引abc加上where d我不太看的懂,是否可以理解为再给d单独建一个索引?
nanjingnew4 2012-12-17
  • 打赏
  • 举报
回复
4L,复合索引abc加上where d我不太看的懂,是否可以理解为再给d单独建一个索引?
睿智天成 2012-12-17
  • 打赏
  • 举报
回复
如果是你将a,b,c设置为复合索引,只能查询出where为a,b,c的数据,复合索引abc加上where d 才能查到你上面所要的数据。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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