博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL语句(五) 索引建立
阅读量:4074 次
发布时间:2019-05-25

本文共 1694 字,大约阅读时间需要 5 分钟。

一、实例 

1.创建唯一性索引SET STATISTICS TIME ONSELECT * FROM customer WHERE name ='阿爆' ;SET STATISTICS TIME OFFCREATE UNIQUE INDEX customer_name ON customer(name);--在customer表上的name列创建唯一性索引2.创建函数索引在零件表的零件名称字段上创建一个零件名称的函数索引sql server 不支持函数索引,因此需要添加长度列,在该列上创建索引ALTER TABLE part ADD name_length as LEN(name) persistedSET STATISTICS TIME ONSELECT * FROM part WHERE name_length=5 ;SET STATISTICS TIME OFFCREATE INDEX part_name ON part(name_length);3.创建复合索引SET STATISTICS TIME ONSELECT * FROM customer A,customer BWHERE A.name='阿倍仲麻吕'AND B.nationkey<200;SET STATISTICS TIME OFFCREATE INDEX name_nationkey ON customer(name,nationkey);4.创建聚簇索引如果在建表的时候建立了主键,没有建立聚簇索引,那么默认主键是聚簇索引CREATE TABLE region2(/*地区表*/  regionkey INTEGER ,/*地区编号*/  name CHAR(25),     /*地区名称*/  comment CHAR(152)  /*备注*/);CREATE CLUSTERED INDEX region_name ON region2(name);5.创建哈希索引ALTER TABLE part ADD hash_nameAS CAST(HASHBYTES('MD2',name)AS UNIQUEIDENTIFIER) PERSISTED;CREATE INDEX part_name ON part(hash_name);SET STATISTICS TIME ONSELECT * FROM  part WHERE hash_name = CAST(HASHBYTES('MD2','竹炭空气清新篮') AS UNIQUEIDENTIFIER)SET STATISTICS TIME OFF6.修改索引名称CREATE INDEX name_nationkey ON customer(name,nationkey);sp_rename'customer.name_nationkey','name_nationkey2','INDEX';7.分析某个句子是否使用了索引SELECT * FROM customer A,customer BWHERE A.name='阿倍仲麻吕'AND B.nationkey<200;8.验证索引效率  SELECT DISTINCT nameFROM part;CREATE INDEX part_name ON part(name);--DROP INDEX part_name ON part;

二、注意

1、在创建唯一性索引的过程中出现了下面图片中的错误,后来经查询发现part表中name列上的值并不唯一,所以创建唯一索引会失败。

2.在创建聚簇索引时发现,如果在建表的时候建立了主键,没有建立聚簇索引,那么系统默认主键是聚簇索引,因此想要在有主键的表上实现建立聚簇索引,只能先删除主键,这样做其实并不实际。

3.创建索引可以加快查询的速度,但在试验中我发现并非所有的索引都会加快查询速度,因为索引本身就会导致额外的开销;此外,也并非所有的表都适合建立索引,如果一个表经常更新,索引往往会导致数据的物理顺序发生变化,付出的代价较大。

你可能感兴趣的文章
RedHat + OS CPU、MEM、DISK
查看>>
net TCP/IP / TIME_WAIT / tcpip / iperf / cain
查看>>
webServer kzserver/1.0.0
查看>>
OS + Unix IBM Aix basic / topas / nmon / filemon / vmstat / iostat / sysstat/sar
查看>>
my ReadMap subway / metro / map / ditie / gaotie / traffic / jiaotong
查看>>
OS + Linux DNS Server Bind
查看>>
linux下安装django
查看>>
Android 解决TextView设置文本和富文本SpannableString自动换行留空白问题
查看>>
Android开发中Button按钮绑定监听器的方式完全解析
查看>>
Android自定义View实现商品评价星星评分控件
查看>>
postgresql监控工具pgstatspack的安装及使用
查看>>
postgresql查看表的和索引的情况,判断是否膨胀
查看>>
postgresql中根据oid和filenode去找表的物理文件的位置
查看>>
postgresql减少wal日志生成量的方法
查看>>
swift中单例的创建及销毁
查看>>
获取App Store中App的ipa包
查看>>
iOS 关于pods-frameworks.sh:permission denied报错的解决
查看>>
设置RGBColor
查看>>
设置tabbaritem的title的颜色及按钮图片
查看>>
动态设置label的高度
查看>>