数据库索引

1、什么是索引?

在关系型数据库中,索引某一个表中一列或者若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。

2、索引的优缺点

优点:

通过创建唯一的索引可以保证每一行数据的唯一性。

可以加快数据查询的速度。

在实现数据的参考完整性方面可以加速表与表之间的连接。

在实现分组和排序子句进行数据查询的时候,可以显著减少查询中分组和排序的时间。

缺点:

创建和维护索引需要耗费时间。

索引需要占用磁盘空间。

对表中的数据进行修改,索引也需要维护。

3、索引的种类

普通索引

create   index    indexname   on    tablename;

普通索引是 MySQL 中最基本的索引类型,它没有任何限制,唯一任务就是加快系统 对数据的访问速度。 普通索引允许在定义索引的列中插入重复值和空值。

唯一索引

create   unique   index    indexname   on    tablename;

唯一索引是为了避免数据出现重复。

唯一索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。

主键索引

主键索引是一种特殊的唯一索引,不允许值重复或者值为空。 创建主键索引通常使用 PRIMARY KEY 关键字。不能使用 CREATE INDEX 语句创建主 键索引

空间索引

空间索引是对空间数据类型的字段建立的索引,使用 SPATIAL 关键字进行扩展。 创建空间索引的列必须将其声明为 NOT NULL,空间索引只能在存储引擎为 MyISAM 的表中创建。

全文索引

全文索引主要用来查找文本中的关键字,只能在 CHAR、VARCHAR 或 TEXT 类型的 列上创建。在 MySQL 中只有 MyISAM 存储引擎支持全文索引。 全文索引允许在索引列中插入重复值和空值。 不过对于大容量的数据表,生成全文索引非常消耗时间和硬盘空间。 创建全文索引使用 FULLTEXT 关键字。

4、索引的操作

创建索引

create   indexname    on    表名   (列名   [长度]  [asc|desc])

索引也可以在创建表的时候创建(create   table)

CREATE    TABLE     CONSTRAINT PRIMARY KEY [索引类型] (,…)

CREATE   TABLE   KEY | INDEX [<索引名>] [<索引类型>] (<列名>,…)

CREATE   TABLE   UNIQUE [ INDEX | KEY] [<索引名>] [<索引类型>] (<列名>,…)

CREATE    TABLE   FOREIGN KEY  <索引名>  (<列名>

也可以使用alter  table   add 添加上述关键语句(去掉create  table   ,改成alter    table    add)

查看索引

show   index    from    <表名> [from   <数据库名>]

删除索引

drop   index    <索引名>  on   <表名>

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值