• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >数据库其它 > 数据库索引解析

数据库索引解析

作者:yunhui 字体:[增加 减小] 来源:互联网 时间:2017-12-08

yunhui通过本文主要向大家介绍了数据库索引等相关知识,希望本文的分享对您有所帮助

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。

创建一个普通的索引(一个最简单的索引 没有任何限制)

方式1:CREATE INDEX indexName ON tableName(columnName(length)); 
方式2:ALTER tableName ADD INDEX [indexName] ON (columnName(length))
方式3:CREATE TABLE mytable( id int not null, username varchar(16) not null,
         INDEX [indexName] (columnName(length)) );  

删除索引

DROP INDEX [indexName] ON tableName;  

唯一索引(索引列的值必须唯一,但可以为null;如果是多个字段组合索引,那么列值得组合唯一)

创建唯一索引

方式1:CREATE UNIQUE INDEX indexName ON tableName(columnName(length)) 

方式2:ALTER tableName ADD UNIQUE [indexName] ON (columnName(length)) 

方式3:CREATE TABLE tableName( ID INT NOT NULL, username VARCHAR(16) NOT     
            NULL, UNIQUE [indexName] (columnName(length)) );  

主键索引(一种特殊的唯一索引,不可以为null)

创建主键索引

ALTER TABLE tableName ADD PRIMARY KEY (columnName)

组合索引(多个字段的索引)

创建组合索引

ALTER TABLE tableName ADD INDEX index_name ( column1, column2, column3 )

创建索引可以大大提高系统的性能:

第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。

第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

增加索引也有许多不利的方面:

第一,创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

第二,索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,那么需要的空间就会更大。

第三,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11让你的insert操作速度增加1000倍的方法
  • 2017-05-11SQL注入详解(扫盲篇)
  • 2017-05-11SQL 优化经验总结34条
  • 2017-05-11SQL like子句的另一种实现方法(速度比like快)
  • 2017-05-1150条SQL查询技巧、查询语句示例
  • 2017-05-11sql学习之CASE WHEN THEN ELSE END的用法
  • 2017-05-11DBCC SHRINKDATABASEMS SQL数据库日志压缩方法
  • 2017-05-11sqlserver、Mysql、Oracle三种数据库的优缺点总结
  • 2017-05-11详解 MapperScannerConfigurer之sqlSessionFactory注入方式
  • 2017-05-11sql注入之新手入门示例详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 对分区表进行alter-switch时遇到的错误
    • 数据库 关系连接
    • 常用SQL语句优化技巧总结【经典】
    • 让你的insert操作速度增加1000倍的方法
    • 分享三种高效率SQL语句分页方法
    • 利用带关联子查询Update语句更新数据的方法
    • SQL Update多表联合更新的方法
    • SQL之left join、right join、inner join的区别浅析
    • sql 中将日期中分秒化为零的语句
    • db2数据库常用操作命令大全

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有