zoukankan      html  css  js  c++  java
  • 索引

    一个表上可建多个索引。

    索引可以提高查询效率,但索引过多耗费空间,且降低了插入、删除、更新的效率

    较适合常用"select比较多"的表

    索引相当于一个目录
    加快你查询的
    只不过是一个虚拟的,对用户来说是透明看不到的

    CREATE INDEX index_name
    ON table_name (column_name)

    在良好的数据库设计基础上,能有效地使用索引是SQL Server取得高性能的基础,SQL Server采用基于代价的优化模型,它对每一个提交的有关表的查询,决定是否使用索引或用哪一个索引。

    因为查询执行的大部分开销是磁盘I/O,使用索引 提高性能的一个主要目标是避免全表扫描,因为全表扫描需要从磁盘上读表的每一个数据页,如果有索引指向数据值,则查询只需读几次磁盘就可以了。

    所以如果建 立了合理的索引,优化器就能利用索引加速数据的查询过程。

    但是,索引并不总是提高系统的性能,在增、删、改操作中索引的存在会增加一定的工作量,因此,在 适当的地方增加适当的索引并从不合理的地方删除次优的索引,将有助于优化那些性能较差的SQL Server应用。

    实践表明,合理的索引设计是建立在对各种查询的分析和预测上的,只有正确地使索引与程序结合起来,才能产生最佳的优化方案。本文就 SQL Server索引的性能问题进行了一些分析和实践。

    比如:

    建索引主要是用于提高检索数据的速度.
    如果你有一个表(表名假设叫Table1)有一个字段名称是Name,记录有100000行.
    有如下的查询语句:select * from Table1 where Name='zhangshan'
    在没有针对Name创建索引的时候,这个查询会相当慢,到少比创建了索引后慢好几倍.这就是索引的好处之一.
    你并不知道你用了它,只能从查询速度上感觉出来.

  • 相关阅读:
    RedisCacheTool参考其中的文件读写功能
    eclipse eayExplorer 查看代码的资源管理器打开方式
    有关写代码效率的问题
    Eclipse
    解决pdm打开只显示表名不显示字段的步骤
    绝对定位元素的水平垂直居中
    Maven依赖之Scope
    无提示关闭弹出窗口
    Maven模块与模块间的依赖
    Maven+Hibernate4注解0配置示例
  • 原文地址:https://www.cnblogs.com/smallfa/p/1358866.html
Copyright © 2011-2022 走看看