当前位置:  开发笔记 > 数据库 > 正文

SQL关系和索引

如何解决《SQL关系和索引》经验,为你挑选了1个好方法。

我有一个MS SQL服务器应用程序,我已经定义了我的关系和主键.

但是,我是否需要进一步定义关系字段的索引,这些索引有时不在连接中使用,而只是作为where子句的一部分?

我正在假设定义一个关系会创建一个索引,sql引擎可以重用它.



1> James Anders..:

关于这个主题已经写了一些非常厚的书!

这里有一些拇指: -

不要打扰(除了PK)任何<1000行的表.

否则索引你所有的FK.

检查您的SQL并查找将最大程度地减少结果集的where子句以及对该columun进行索引的索引.

例如.给定:

    SELECT OWNER FROM CARS WHERE COLOUR = 'RED' AND MANUFACTURER = "BMW" AND ECAP = "2.0";

您可能拥有超过20,000辆的5000辆红色汽车,所以索引这个并不会有多大帮助.然而,你可能只有100辆宝马,所以索引MANUFACURER会立即将你的结果设置减少到100,你只需扫描一百行即可消除蓝白车.

通常,dbms将根据基数选择一个或两个可用的索引,因此它可以支付第二次猜测并仅定义可能使用的那些索引.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有