标签归档:索引

mssql sqlserver 数据库索引大白话简介


摘要:
下文讲述sqlserver索引大白话简介,如下所示:


当平时遇到查询慢时,我们可以采用

改写sql脚本,表查询字段上加入索引

下文将采用简明扼要的方式讲述索引的相关说明:
在数据库引擎中,索引检索数据的方式,并非一直按照固定的顺序进行检索,而且按照目录格式快速查找到相应的数据位置,数据库索引类似一本字典,
索引类似一个目录:
例:我们查找汉字”猫”,首先查找首字母”M” ,然后跳转到M目录,然后从M字母开始顺序查找,索引就是采用这种快速定位的思路加快数据检索。
索引存在另外一个问题就是维护索引的成本相对较高,因为索引中涉及的内容非常多,会存储到数据库上的很多位置上,当我们在索引中加入汉字时,索引为了保证自身的排序,所以采用其它条目依次后移的方式,即加大索引的维护成本, 通过以上的分析,我们可以看出索引可以加快查询速度,但是降低了对数据操作的速度。
综上所述,在建立索引时,我们一定要综合考虑查询和数据更改的效率上达到一个平衡点,禁止一味的追求查询效率而忽略了插入的效率。

mysql 查看数据表索引的方法分享


摘要:
下文讲述mysql查看数据表索引的方法分享,如下所示:

  ---- 在数据库中,查看表索引常用以下sql命令:
  show index [表名]
  ----------返回列说明-------
   · Non_unique:  
     索引是否为唯一索引(1 非唯一值索引  0 唯一值索引)
  · Key_name:   
     索引名称
   · Seq_in_index:
       索引中所涉及列的顺序号,从1依次向下排列 
   · Column_name:
      索引所涉及的列名称
   · Collation:
       列的排序方式
    · Cardinality:
       索引中唯一值的基数估值
     · Sub_part: 
        列中是否部分字符加入索引中,
        当整列都放入索引时,则为NULL
    · Packed:  
        关键字的压缩方式,未被压缩,则使用NULL 
     · Null:
        列是否存在值为NULL,存在则此处值为YES ,反之则为NO 
     · Index_type:
         索引类型 (BTREE FULLTEXT HASH RTREE) 

mssql sqlserver 使用sql脚本检测指定字段上是否存在索引的方法分享


摘要:
下文将讲述通过sql脚本获取指定字段(数据列)上是否建立了索引,如下所示:
实验环境:sql server 2008 R2


例:
1.建立测试数据表和测试索引
2.使用 系统视图,获取所有索引所包含的键
3.调整 相关的检索条件,检查指定表,指定列上是否建立了索引信息

  --创建测试表
create table [maomao365.com]
(keyId int ,parentId int,
deptName nvarchar(30))
 
 go
---创建索引列 deptName
create index ix_maomao365_dept  on [maomao365.com]
(deptName) 
 
 go
SELECT    a.name   as [索引名称]
,c.name   as [表名]
,d.name   as [索引字段名]
,d.colid   as [索引字段位置]
FROM   sysindexes   a(nolock)
JOIN   sysindexkeys   b(nolock)   ON   a.id=b.id   AND   a.indid=b.indid
JOIN   sysobjects   c(nolock)   ON   b.id=c.id
JOIN   syscolumns   d(nolock)   ON   b.id=d.id   AND   b.colid=d.colid
WHERE   a.indid   NOT IN(0,255)
AND   c.name='maomao365.com' 
---- and d.name ='列名'
go
truncate table [maomao365.com]
drop  table [maomao365.com]
mssql_sqlserver_索引字段查看方法

mssql_sqlserver_索引字段查看方法