索引特性

1.索引:提高数据库的性能,不用加内存,不用改程序,不用调sql,只要执行正确的 create index ,查询速度就可能提高成百上千倍。查询速度的提高是以插入、更 新、删除的速度为代价的,这些写操作,增加了大量的IO。所以它的价值,在于提高一个海量数据的检索速度。

2.常见索引分为:
主键索引(primary key)

唯一索引(unique)

普通索引(index)

全文索引(fulltext)--解决中子文索引问题。
 

3.索引的说明:
占用磁盘空间

当添加一条记录,除了添加到表中,还要维护二叉树,速度有影响,但不大。

当我们添加一个索引,不能够解决所有查询问题,需要分别给字段建立索引;例如 select * from EMP where ename='abcdef';

索引是以空间换时间

4.索引创建原则

比较频繁作为查询条件的字段应该创建索引

唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件

更新非常频繁的字段不适合作创建索引

不会出现在where子句中的字段不该创建索引

5.创建主键索引

(1)在创建表的时候直接在字段名后指定primary key

create table d(
    -> id int primary key,name varchar(10));

(2) 在创建表的最后,指定某列或某几列为主键索引 

create table h(
    -> id int,name varchar(10),primary key(id));

(3) 创建表以后再添加主键 

create table a(
    -> id int,name varchar(10));
alter table a add primary key(id);

主键索引的特点:
一个表中,最多有一个主键索引,当然可以使符合主键

主键索引的效率高(主键不可重复)

创建主键索引的列,它的值不能为null,且不能重复

主键索引的列基本上是int 

 

6.唯一索引的创建同主键索引创建方法 一致,只不过把主键索引的关键字换成唯一索引的关键字unique

唯一索引的特点:
一个表中,可以有多个唯一索引

查询效率高

如果在某一列建立唯一索引,必须保证这列不能有重复数据

如果一个唯一索引上指定not null,等价于主键索引 

 

7.普通索引创建也同上面三种方法,只是将关键字换成index即可。

普通索引的特点:
一个表中可以有多个普通索引,普通索引在实际开发中用的比较多

如果某列需要创建索引,但是该列有重复的值,那么我们就应该使用普通索引 

8.查询索引

(1)show keys from 表名

show keys from a;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
| a     |          0 | PRIMARY  |            1 | id          | A         |           0 |     NULL | NULL   |      | BTREE      |         |               |
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+
 

(2)show index from 表名

 

(3)最简洁的方法

desc 表名

9.删除索引

(1)删除主键索引

(2)删除其他索引

alter table 表名 drop index 索引名,索引名就是show keys from 表名 中的 Key_name 字段 

(3)drop index 索引名 on 表名

drop index name on users;

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值