SQL Server之索引

简单来说,索引就是一个指针,指向表里的数据。
创建索引
create indext index_name on table_name
删除索引
drop index index_name on table_name
索引的类型
单字段索引
create indext index_name on table_name(column_name)
如果某个字段单独在Where子句作为单独的查询条件,它的单字段索引是最有效的。
唯一索引

create unique indext index_name on table_name(column_name)
唯一索引不允许表里有重复值,且column_name不能是主键。
组合索引

create indext index_name on table_name(column1,column2)
组合索引是基于一个表里两个或多个字段的索引
隐含索引

是数据库服务程序在创建对象时自动创建的。比如,数据库会给主键约束和唯一性约束自动创建索引。
为什么给这些约束自动创建索引?
从一个数据库服务程序的角度来看,当管理员向数据库添加一列新信息时,主键是唯一的。为了有效地检查新值在数以千计的
记录里是唯一的,表里的主键列必须被索引。因此,在创建主键或唯一性约束时,数据库会自动给他们创建索引。
聚集索引和非聚集索引
根据索引的顺序与数据表的物理顺序是否相同,可以把索引非为聚集索引和非聚集索引。
例如:字典的目录就是一种索引,因为通过目录我们可以很快的定位到要检索的内容,而不是从头到尾把字典翻一遍。汉语字典
一般都提供两种目录,一种是拼音目录,另一种是偏旁部首目录。汉语字典是按照拼音的顺序排列的,因此拼音目录就是聚集索引,
而偏旁部首目录是非聚集索引,
每一个表都只有一个聚集索引,因为表中数据的物理顺序只有一个,而非聚集索引则可以创建多个。
索引的小知识
索引是数据库调优的最根本的方法,很多优化手法都是围绕索引展开的,可以说索引是一切优化手法的“内功”,而所有的优化

手法都是由索引衍化出来的招式而已。 
但是由于索引需要占据一定的存储空间,而且索引也会降低数据插入、删除和更新的速度,所以应该只创建必要的索引,一般是
在检索的时候用的字段中创建索引。
索引还会造成存储碎片的问题。当删除一条记录时,将会导致对应的索引中的该记录的对应项为空,由于索引是采用B树结构存储,
所以对应的索引项不会被删除,经过一段时间的增删改操作后,数据库中就会出现大量的存储碎片,这些存储碎片不仅占用了存储
空间,而且降低了数据库运行的速度。那么怎么处理这些存储碎片呢?最方便的手段就是重建索引,重建索引会将先前创建的索引
删除然后重新创建索引,主流数据库管理系统都提供了重建索引的功能,比如reindex,rebuild等,如果没有提供重建索引功能,可以
首先用drop index语句删除索引,然后用alter table语句重新创建索引。

转载于:https://www.cnblogs.com/jiajiayuan/archive/2011/07/12/2104418.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/405068.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt多线程编程的主要线程类

1、描述 Qt提供QThread类处理多线程,继承自QObject。不受平台影响,实现跨平台功能。 2、主要的线程类 QAtomicInt:提供Interger与平台无关的Atomic运算,即提供了整数常用的原子操作,支持四种类型的操作。支持四种类…

安装kernel API的man手册

From: http://blog.163.com/yun_2527/blog/static/3527186120122242516589/ 参考:http://hi.baidu.com/handsoul/blog/item/eb2f59f11d55e8d90a46e0b2.html 系统环境:ubuntu-10.04.1-desktop-i386 1、下载一个内核源代码 2、安装make mandocs的两个依…

绝对不忽悠、暑期择机功能该咋选?

暑期已经过去一半了,但每年的择机高潮却正是个如火如荼,正值暑促阶段,很多手机厂商或商家都会适当的调整价格或者推出更具优惠的方案,吸引买家,其中不乏很多在手机功能上的大肆宣传,我们买手机看重的无外乎…

ASP.NET 5 Beta7发布

(此文章同时发表在本人微信公众号“dotNET每日精华文章”,欢迎右边二维码来关注。) 前几天,ASP.NET 5如期发布了Beta 7,根据路线图 (https://github.com/aspnet/home/wiki/roadmap),这次发布主要是实现跨平台的能力。之…

[react] 说说你对React的reconciliation(一致化算法)的理解

[react] 说说你对React的reconciliation(一致化算法)的理解 就是启发式Diff算法 ,时间复杂度从N的三次方下降到N ,通过博客途径了解到实现的策略是 tree diff , element diff , component diff 算法 。在diff算法中如果element 没…

CM3计算板装系统

1、CM3计算板简介 把树莓派搬到自己的产品中,一种和树莓派基础功能一模一样的板卡,并对相关管脚扩展,完成产品级的功能设计和硬件设计。板卡如下图所示,运行的是Linux操作系统。 2、下载镜像 CM3有多种内存搭配,常见…

线性表的各种基本操作

#include"stdio.h" #include<malloc.h> typedef char ElemType; typedef struct LNode{ElemType data;struct LNode *next; } LinkList; void CreatListF(LinkList *&L,ElemType a[],int n){ //头插法建表LinkList *s;int i;L(LinkList *)malloc(sizeof(L…

关于 CKEditor 3.6以后不兼容ie6的问题解决方案

2019独角兽企业重金招聘Python工程师标准>>> skins\模版名称\editor.css 在第一个.cke_skin_kama *,.cke_skin_kama a:hover,.cke_skin_kama a:link,.cke_skin_kama a:visited,.cke_skin_kama a:active{.....}里面添加 _overflow:hidden;即可. 转载于:https://my.os…

[react] 写例子说明React如何在JSX中实现for循环

[react] 写例子说明React如何在JSX中实现for循环 map方法 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

USB/UART 串口转LoRa无线传输调试工具 评估套件

一、LoRa无线传输的特点 LoRa无线通信采用扩频调制通信方式&#xff0c;抗干扰强、灵敏度高&#xff0c;能够在较低功耗的情况下传输更远的距离。采用ISM免授权频段&#xff08;470MHZ-510MHZ&#xff09;&#xff0c;用于无线抄表、工业监控、农业管理、智慧园区、智慧楼宇等…

新手指导:51CTO微博小技巧

您是初次接触微博吗&#xff1f;您是不是不了解微博&#xff0c;不知道怎样才能玩转微博&#xff1f;没关系&#xff0c;小管家这就教您几招&#xff0c;让您通过140字轻松的将看到的、听到的、想到的事情随时随地分享给朋友。 一、怎样拥有微博二、新手快速使用微博攻略 2…

Linux给GCC编译的应用程序创建服务

一、创建服务文件 linux 服务文件的位置在&#xff1a; /etc/systemd/system &#xff0c;进入该目录。首先创建一个服务文件&#xff0c;名字可以按照xxx.service 的格式命名&#xff0c;例如我的噪声处理服务命名: noiserun.service。创建文件需要sudo权限&#xff1a;sudo …

[react] 怎样有条件地渲染组件?

[react] 怎样有条件地渲染组件&#xff1f; {condition && <Component />} or {condition ? <Component /> : <AnotherComponent />} 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大…

13.bash shell中的if-then语句

文章目录 shell中的流控制if语句if语句if-then语句if-then-else 语句 test命令数值比较字符串比较文件比较case语句 欢迎访问个人网络日志&#x1f339;&#x1f339;知行空间&#x1f339;&#x1f339; shell中的流控制if语句 简单的脚本可以只包含顺序执行的命令&#xff0…

贪心算法问题

7.设有n 种物品&#xff0c;每种物品有一个重量及一个价值。但每种物品的数量是无限的&#xff0c;同时有一个背包&#xff0c; 最大载重量为M&#xff0c;今从n 种物品中选取若干件(同一种物品可以多次选取)&#xff0c;使其重量的和小于等于M&#xff0c; 而价值的和为最大。…

IOS贝塞尔曲线圆形进度条和加载动画

做项目让做一个加载动画,一个圈圈在转中间加一个图片,网上有好多demo,这里我也自己写了一个,中间的图片可加可不加。其中主要用到贝塞尔曲线。UIBezierPath是对CGContextRef的进一步封装,不多说直接上代码&#xff1a; #import <UIKit/UIKit.h>interface CircleLoader : …

CM3计算板EC20模组拨号上网

1、安装 ppp 安装ppp&#xff1a;sudo apt-get install ppp 2、配置路由 查看路由和网卡 ifconfig ; route -n增加路由设备&#xff1a; sudo route add default dev ppp0 3、执行拨号脚本 进入linux-ppp-scripts 文件下&#xff1a;sudo ./quectel-pppd.sh /dev/ttyUSB3 …

[react] 你是如何划分React组件的?

[react] 你是如何划分React组件的&#xff1f; 可复用的功能 可复用的页面 当你在多个地方写一样或类似的代码时&#xff0c;就该考虑封装组件 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录…

VLC播放器安装

From: http://blog.csdn.net/lqrensn/article/details/6179171 想边上班边听歌&#xff0c;可惜办公电脑有点差&#xff0c;所以装的是fedora 10.又用的是代理上网&#xff0c;网速严重受限&#xff0c;同事传了些mp3,居然听不了&#xff0c;没mp3解码器&#xff0c;晕倒。。…

Linux安装配置apache

1.获取软件&#xff1a; http://httpd.apache.org/ httpd-2.2.21.tar.gz wget http://apache.fayea.com//httpd/httpd-2.2.31.tar.gz 2.安装步骤&#xff1a; 解压源文件&#xff1a; 1 tar zvxf httpd-2.2.21.tar.gz 2 cd httpd-2.2.213 ./configure --prefix/usr/local/apac…