1、使用聚集索引

对于聚集索引,索引的叶子页面和表的数据页面相同。因此,当读取聚集索引键列的值时,数据引擎可以读取其他列的值而不需要任何导航。例如前面的区间数据查询的操作,SQLServer通过B树结构进行查找是非常快速的。

把非聚集索引转换为一个聚集索引说起来很简单。但是,这个例子和大部分可能遇到的情况下,这不可能做到,因为表已经有了一个聚集索引。这个表的聚集索引恰好是主键。必须卸载掉所有的外键约束,卸载并且重建为一个非聚集索引。这不仅要考虑所涉及的工作,还可能严重地影响依赖于现有聚集索引的其他查询。

2、使用覆盖索引

例如

select id,name frompersontenthousand where id <100

我们可以在id,name上面建个组合索引,这样,由于非聚集索引上已经有了需要查询的Id和Name列的数据,所以不在需要书签查找定位到基本表。

3、使用索引连接

如果覆盖索引变得非常宽,那么可能要考虑索引连接技术。索引连接技术使用两个或更多索引之间的一个索引交叉来完全覆盖一个查询。因为索引连接技术需要访问多余一个索引,它必须在所有索引连接中使用的索引上执行逻辑读。因此,索引连接需要比覆盖索引更高的逻辑读数量。但是,因为索引连接所用的多个窄索引能够比宽的覆盖索引服务更多的查询。所以索引连接也可以作为避免书签查找的一种技术来考虑。

最新文章

  1. 28个你必须知道的HTML5的新特性,技巧以及技术
  2. Linux SendMail服务启动慢总结
  3. gb2312
  4. SVN代码回滚
  5. Ubuntu 14 Chrome字体设置备份
  6. 目前主流的Android定位有如下几种:
  7. App 上线流程
  8. USB Packet Types
  9. LintCode &quot;Binary Representation&quot;
  10. OC字符串常用函数
  11. js验证表单大全
  12. 70个经典的 Shell 脚本面试问题
  13. Lua 环境结构 --Linux
  14. checkbox:全选与反全选
  15. Head First设计模式之适配器模式
  16. SQLServer安装步骤(2012版为例)
  17. python爬取某站磁力链
  18. git同时存在两个账号(在同一台电脑上)——三步完成
  19. UE4 ShooterGame Demo的开火的代码
  20. 1) 嵌套的 div ,或者 ul ol .li 阻止冒泡 ,特别是 对应onclick=&quot;test(event)&quot; 通过传递event 阻止 冒泡. cancelBubble , stopPropagation

热门文章

  1. kolla-build常用命令行详解
  2. [WIP]php入門
  3. Ruby and gnuplot installation on Ubuntu 16.04
  4. Spark RDD(Resilient Distributed Dataset)
  5. python中enumerate、xrange、range
  6. [Leetcode]009.Palindrome Number
  7. Luogu P2391 白雪皑皑 &amp;&amp; BZOJ 2054: 疯狂的馒头 并查集
  8. spring boot中ConditionalOnClass为什么没有classNotFound类加载异常
  9. jquery——选项卡
  10. MySQL存储过程的动态行转列