是否有理由在一个WHERE语句中常用的列上放一个索引,或者在一个少于1000行的表上放一个JOIN?作为标准,我被问及我们正在处理的项目,在所有正在使用WHERE的列上应用索引。
我可以理解在大型表上使用它,但是,较小表上的索引的开销似乎是没用的。添加索引是否有任何好处或损害,不知不觉?
答案 0 :(得分:0)
数据库索引仅适用于正确的大表。但是当你的小桌子加入其他大桌子而没有索引时,它可能会很慢。至少有一个唯一的集群索引 在小桌子上创建的好习惯。 这还取决于您的搜索内容,如文本,搜索和加入慢速数字。 我的建议是在小表上创建一个主键簇索引,如果你确定数据频率较低,则不需要其他列索引。
答案 1 :(得分:0)
指数可以避免表扫描 - 这会导致锁定。即使是1000行表也会在没有索引的情况下获得更少的吞吐量,并且假设连接中没有可用的索引,这将导致某些结构受到青睐,你不会喜欢它们。