请教数据库中表建立索引的问题

winet68 2003-10-20 10:18:22
如果一条select语句中检索条件和A列相关,另一条与a列和b列相关,那么数据库表中建立索引时是建组合索引合适呢还是分别建2条索引合适呢?
...全文
48 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
liliang800207 2003-10-22
  • 打赏
  • 举报
回复
学习
qqjj7758 2003-10-22
  • 打赏
  • 举报
回复
谢谢,我也有所明了
winet68 2003-10-22
  • 打赏
  • 举报
回复
谢谢各位,我很有启发。
老吴子 2003-10-21
  • 打赏
  • 举报
回复
索引的建立需要一定的技巧和经验,没有一定的公式,对于你上面的问题,说明如下:
1、不管是A字段还是B字段,判断有否建立索引的必要,索引列如果仅有很少的值,如性别,则没有必要建立索引,如果该字段大部分值是不同的,则建立索引可能是较好的选择。
2、如果表的数据行很少,比如几条到几百条,而且数据行较短,也没有建立的必要,如果该数据经常用到,则采用DBMS的命名缓存(Sybase)或保持Cache(Oracle)等技术,使该表数据在缓冲区中;
3、如果建立索引,则要能确定主要查询语句是否用到该索引,比如如果你对A字段建立索引,而在SQL语句中where A like '%xxx%',则DBMS还是会采用表扫描,索引就没有意义了;
4、如果你所涉及的两个查询频率很高(这两者几乎是全部),而且确信都会用到,建议你对A作索引,对A、B作组合索引,如果有时候还有不少针对B的索引,则分别对A、B作索引;如果确信该表不会频繁更新,而且更新的并发度要求不高,而且拥有足够的空间,则你可以尝试不同的组合。
5、对DBMS进行监控,确认索引的有效性并不断改进。积累你的经验。如果你经常参与的开发工作涉及的数据行经常会出现百万、千万甚至更高的,那祝贺你那,你会在短时间内提高的。如果只是开发练习程序,或小规模系统,也许几年也提高不了。
winet68 2003-10-21
  • 打赏
  • 举报
回复
希望得到更多人的帮助!
YewPu 2003-10-20
  • 打赏
  • 举报
回复
复合索引。

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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