精华内容
下载资源
问答
  • SQL创建索引和删除索引 使用CREATE 语句创建索引 CREATE INDEX index_name ON table_name(column_name,column_name) include(score) 普通索引 CREATE UNIQUE INDEX index_name ON table_name (column_name) ; 非空...

    SQL创建索引和删除索引

    使用CREATE 语句创建索引

    CREATE INDEX index_name ON table_name(column_name,column_name) include(score)

    普通索引

    CREATE UNIQUE INDEX index_name ON table_name (column_name) ;

    非空索引

    CREATE PRIMARY KEY INDEX index_name ON table_name (column_name) ;

    主键索引

    使用ALTER TABLE语句创建索引

    alter table table_name add index index_name (column_list) ;
    alter table table_name add unique (column_list) ;
    alter table table_name add primary key (column_list) ;

    删除索引

    drop index index_name on table_name ;
    alter table table_name drop index index_name ;
    alter table table_name drop primary key ;

    创建索引
    alter table tbl_name add primary key (column_list):
    该语句添加一个主键,这意味着索引值必须是唯一的,且不能为 null。

    alter table tbl_name add unique index_name (column_list):
    这条语句创建索引的值必须是唯一的(除了 null 外,null 可能会出现多次)。

    alter table tbl_name add index index_name (column_list):
    添加普通索引,索引值可出现多次。

    alter table tbl_name add fulltext index_name (column_list):
    该语句指定了索引为 fulltext ,用于全文索引。

    删除索引
    drop index [indexname] on mytable;

    修改
    alter mytable add index [indexname] on(username(length))

    查询
    使用 show index 命令来列出表中的相关的索引信息。可以通过添加 \g 来格式化输出信息。
    show index from table_name \g

    展开全文
  • CREATE INDEX 既可以创建一个可改变表的物理顺序的簇索引,也可以创建提高查询性能的非簇索引。其语法如下:  CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]  INDEX index_name ON {table | view } column [ ...
    CREATE INDEX 既可以创建一个可改变表的物理顺序的簇索引,也可以创建提高查询性能的非簇索引。其语法如下: 
    
      CREATE [UNIQUE] [CLUSTERED | NONCLUSTERED]

      INDEX index_name ON {table | view } column [ ASC | DESC ] [,...n])

      [WITH

      [PAD_INDEX]

      [ [, ] FILLFACTOR = fillfactor]

      [ [, ] IGNORE_DUP_KEY]

      [ [, ] DROP_EXISTING]

      [ [, ] STATISTICS_NORECOMPUTE]

      [ [, ] SORT_IN_TEMPDB ]

      ]

      [ON filegroup]

      各参数说明如下:

    UNIQUE
      创建一个惟一索引,即索引的键值不重复。在列包含重复值时,不能建惟一索引。如要使用此选项,则应确定索引所包含的列均不允许NULL 值,否则在使用时会经常出错。

    CLUSTERED

      指明创建的索引为簇索引。如果此选项缺省,则创建的索引为非簇索引。

    NONCLUSTERED

    指明创建的索引为非簇索引其索引。数据页中包含了指向数据库中实际的表数据页的指针。

    index_name

    指定所创建的索引的名称。索引名称在一个表中应是惟一的,但在同一数据库或不同数据库中可以重复。

    table

    指定创建索引的表的名称。必要时还应指明数据库名称和所有者名称。 view

      指定创建索引的视图的名称。视图必须是使用SCHEMABINDING 选项定义过的,其具体信息请参见“视图创建”章节。

    ASC | DESC

      指定特定的索引列的排序方式。默认值是升序(ASC)。

    column

      指定被索引的列。如果使用两个或两个以上的列组成一个索引,则称为复合索引。一个索引中最多可以指定16 个列,但列的数据类型的长度和不能超过900 个字节。 PAD_INDEX指定填充索引的内部节点的行数,至少应大于等于两行。PAD_INDEX 选项只有在FILLFACTOR 选项指定后才起作用。因为PAD_INDEX 使用与FILLFACTOR 相同的百分比。缺省时,SQL Server 确保每个索引页至少有能容纳一条最大索引行数据的空闲空间。如果FILLFACTOR 指定的百分比不够容纳一行数据S,QL Server 会自动内部更改百分比。

    FILLFACTOR = fillfactor

      FILLFACTOR 称为填充因子,它指定创建索引时,每个索引页的数据占索引页大小的百分比,fillfactor 的值为1 到100。它其实同时指出了索引页保留的自由空间占索引页大小的百分比。即100 - fillfactor。 对于那些频繁进行大量数据插入或删除的表在建索引时应该为将来生成的索引数据预留较大的空间,即将fillfactor 设得较小,否则,索引页会因数据的插入而很快填满,并产生分页,而分页会大大增加系统的开销。但如果设得过小,又会浪费大量的磁盘空间,降低查询性能。因此,对于此类表通常设一个大约为10 的fillfactor。 而对于数据不更改的、高并发的、只读的表,fillfactor 可以设到95 以上乃至100。

      如果没有指定此选项,SQL Server 默认其值为0 。0 是个特殊值,与其它小FILLFACTOR

      值(如:1,2)的意义不同,其叶节点页被完全填满,而在索引页中还有一些空间。可以

      用存储过程Sp_configure 来改变默认的FILLFACTOR 值。

    IGNORE_DUP_KEY

      此选项控制了当往包含于一个惟一约束中的列中插入重复数据时SQL Server 所作的反应。当选择此选项时,SQL Server 返回一个错误信息,跳过此行数据的插入,继续执行下面的插入数据的操作:当没选择此选项时,SQL Server 不仅会返回一个错误信息,还会回滚(Rolls Back)整个INSERT 语句(关于回滚,请参见“数据库更新”章节中的“事务”一节)。 DROP_EXISTING指定要删除并重新创建簇索引。删除簇索引会导致所有的非簇索引被重建,因为需要用行指针来替换簇索引键。如果再重建簇索引,那么非簇索引又会再重建一次,以便用簇索引键来替换行指针。使用DROP_EXISTING 选项可以使非簇索引只重建一次。

    STATISTICS_NORECOMPUTE

      指定分布统计不自动更新。需要手动执行不带NORECOMPUTE 子句的UPDATESTATISTICS 命令。

    SORT_IN_TEMPDB

      指定用于创建索引的分类排序结果将被存储到Tempdb 数据库中。如果Tempdb 数据库和用户数据库位于不同的磁盘设备上,那么使用这一选项可以减少创建索引的时间,但它会增加创建索引所需的磁盘空间。

    ON filegroup

      指定存放索引的文件组。 注意:数据类型为TEXT、NTEXT、IMAGE或BIT的列不能作为索引的列。

      由于索引的宽度不能超过900个字节,因此数据类型为CHAR、VARCHAR、BINARY和VARBINARY的列的列宽 度超过了900字节,或数据类型为NCHAR、NVARCHAR的列的列宽度超过了450个字节时也不能作为索引的列。

      在使用索引创建向导创建索引时,不能将计算列包含在索引中,但在直接创建或使用CREATE INDEX命令创建索引时,则可以对计算机列创建索引,这在SQL Server2000以前的版本中是不允许的,算得上是一大改进。
    展开全文
  • //查看表中建立的所有索引 use库名 exec sp_helpindex表名 SQL语句创建索引设置倒序 create index new_index on表名 (字段 desc)// 创建索引 名称 在哪个列哪个字段倒序

    //查看表中建立的所有索引

    use 库名

    exec sp_helpindex 表名 

    SQL语句创建索引设置倒序

    create index new_index on 表名 (字段 desc)//

    创建索引  名称   在哪个列 哪个字段 倒序

    展开全文
  • SQL Server 创建索引分区

    千次阅读 2016-05-29 00:34:38
    后面跟盆友讨论的时候,提到建索引分区,可以提高从海量数据中查询效率。 一.索引的概念及原理 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库表中的数据。 ...

        最近一段时间换工作,然后去面试发现很多会问关于大数据量数据查询性能优化的问题,感觉自己之前做项目都是一知半解的状态,很多东西都没有搞明白,这点还蛮要命的。后面跟盆友讨论的时候,提到建索引分区,可以提高从海量数据中查询效率。

    一.索引的概念及原理

    数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据库表中的数据。

    http://images.cnitblog.com/blog/17071/201309/17013445-8b65c9b0eb194e45ae43d38c498519f3.gif

    二.怎么建合适、高效的索引

    一般来说,应该在这些列上创建索引:

    1.在经常需要搜索的列上,可以加快搜索的速度;

    2.在作为主键的列上,强制该列的唯一性和组织表中数据的排列结构;在经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度;

    3.在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的;

    4.在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;

    5.在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。


    同样,对于有些列不应该创建索引。一般来说,不应该创建索引的的这些列具有下列特点:

    1.对于那些在查询中很少使用或者参考的列不应该创建索引。这是因为,既然这些列很少使用到,因此有索引或者无索引,并不能提高查询速度。相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

    2.对于那些只有很少数据值的列也不应该增加索引。这是因为,由于这些列的取值很少,例如人事表的性别列,在查询的结果中,结果集的数据行占了表中数据行的很大比例,即需要在表中搜索的数据行的比例很大。增加索引,并不能明显加快检索速度。

    3.对于那些定义为text, image和bit数据类型的列不应该增加索引。这是因为,这些列的数据量要么相当大,要么取值很少。

    4.当修改性能远远大于检索性能时,不应该创建索引。这是因为,修改性能和检索性能是互相矛盾的。当增加索引时,会提高检索性能,但是会降低修改性能。当减少索引时,会提高修改性能,降低检索性能。因此,当修改性能远远大于检索性能时,不应该创建索引。


    根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引

      三.索引的代价

    1.占据更多的数据存储空间。

    2.插入和更新数据要花费更多时间,因为索引也要随之变动。


    
    展开全文
  • SQLServer 语句-创建索引

    万次阅读 2010-12-17 14:04:00
    SQLServer 语句-创建索引
  • drop index index_name on table_name ; alter table table_name drop index index_name ; alter table table_name drop primary key ;
  • SQLSERVER数据库,安装、备份、还原等问题: 一、存在已安装了sql server 2000,或2005等数据库,再次安装2008,会出现的问题 1、卸载原来的sql server 2000、2005,然后再安装sql server 2008,否则经常sql ...
  • Database之SQLSever:SQL命令实现理解索引、规则、默认概念及其相关案例之详细攻略 目录 SQL命令实现理解索引、规则、默认概念 索引 规则 创建规则、把自定义规则绑定到列、验证规则作用、取消规则绑定、...
  • 二、创建索引 三、管理索引(删除索引) 四、全文索引和目录 五、聚集索引和非聚集索引 一、索引概述 索引:是一个单独的、物理的数据库结构,它是某个表中一列或若干类的集合相应的指向表中物理标识这些值的...
  • SQLServer之创建索引视图

    万次阅读 2018-10-25 16:00:54
    索引视图创建注意事项 对视图创建的第一个索引必须是唯一聚集索引。 创建唯一聚集索引后,可以创建更多非聚集索引。 为视图创建唯一聚集索引可以提高查询性能,因为视图在数据库中的存储方式与具有聚集索引的表的...
  • Sql Server 创建索引 、复合索引

    千次阅读 2017-03-05 17:19:56
     首先声明一下,由于我的权限有限,不能进行DBCC IND,PAGE等命令,所以我没有能力判断下面的索引是include索引还是复合索引,所以这里统一叫成 复合索引吧。 1 SELECT name,type_desc FROM sys....
  • 10-SQLite之创建索引(sql create index)

    万次阅读 2015-04-15 16:01:17
    一、索引的概述 例如这样一个查询:select * from table1 where id=10000。如果没有索引,必须遍历整个表,直到ID等于10000的这一行被找到为止;有了索引之后(必须是在ID这...本例会创建一个简单的索引,名为 "pe
  • SQL CREATE INDEX 语句CREATE INDEX 语句用于在表中创建索引。在不读取整个表的情况下,索引使数据库应用程序可以更快地查找数据。索引您可以在表中创建索引,以便更加快速高效地查询数据。用户无法看到索引,它们...
  • 创建索引 创建索引的语法是: CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [USING index_type] ON tbl_name (index_col_name,...) index_col_name: col_name [(length)] [ASC | DESC] 对于CHAR和VARCHAR...
  • 使用SQL创建唯一索引

    千次阅读 2019-04-27 08:10:00
    使用sql语句创建唯一索引,格式如下: create unique index 索引名 on 表名(列名1,列名2……) 示例;在表GoodsMade_Labour的SID列上创建唯一索引IX_GoodsMade_Labour,代码如下: create unique index IX_...
  • 1、建立表索引 create index 索引名 on 表名(列名,列名); 2、删除表索引 drop index 索引名 on 表名; 3、查看表索引 select * from sysibm.sysindexes where tbname='表名'; ---表名区分大小写 或者在...
  • sql脚本是包含一到多个sql命令的sql...基本步骤如下:1、创建包含sql命令的sql脚本文件文件中包含一些列的sql语句,每条语句最后以;结尾,文件内容示例如下:--创建表,使用“--”进行注释create table 表名称( Gu...
  • create unique index new_index2 on表名 (字段 ) 创建唯一索引索引名称在哪个表创建索引
  • SQL索引

    千次阅读 2016-04-06 11:47:53
    SQL索引在数据库优化中占有一个非常大的比例, 一个好的索引的设计,可以让你的效率提高几十甚至几百倍,在这里将带你一步步揭开他的神秘面纱。  1.1 什么是索引?  SQL索引有两种,聚集索引和非聚集索引索引...
  • 本文主要是对如何使用命令操作MySQL索引,包括创建索引、重建索引、查询索引、删除索引的操作。以下所列示例中的 `table_name` 表示数据表名,`index_name` 表示索引名,column list 表示字段列表(如:`id`,`order_...
  • sql语句创建唯一索引

    千次阅读 2016-01-27 08:37:52
    使用sql语句创建唯一索引,格式如下: create unique index 索引名 on 表名(列名1,列名2……) 示例;在表GoodsMade_Labour的SID列上创建唯一索引IX_GoodsMade_Labour,代码如下: create unique index IX_...
  • SQL Server 创建和使用索引

    千次阅读 2013-01-24 11:58:01
    (1)在SQL Server Management Studio中,选择并右击要创建索引的表,从弹出菜单中选择“设计”,打开表设计器。右键单击表设计器,从弹出菜单中选择“索引/键”命令,打开“索引/键”对话框。对话框中列出了已经...
  • SQL创建索引语句

    千次阅读 2015-06-08 09:03:03
    SQL创建索引语句:  语法:  use 数据库名  go  if exists(select name from sysindexes where name='索引名')  drop index 表名.索引名  go  create index 索引名 on 表名(字段名)  go  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 163,619
精华内容 65,447
关键字:

创建索引的sql命令是