索引

    索引

1、索引简介

1) 什么是索引

   我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化显然是重中之重。 说起加速查询,就不得不提到索引了。

2) 为什么要有索引

索引在 MySQL 中也叫做“键”,是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关 键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。

3) 索引的优劣势:

索引的优势:可以快速检索

索引的劣势:索引本身也是表,因此会占用存储空间

2、MySQL 中索引的使用

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX myindex (username(16)) );

 注意:如果是 CHAR,VARCHAR 类型,length 可以小于字段实际长度;如果是 BLOB 和 TEXT 类型,必须 指定 length。

创建表之后创建索引

CREATE INDEX myindex ON mytable(username(16)); 或者 ALTER table mytable ADD

2) 查看索引

SHOW INDEX FROM mytable

3) 删除索引

DROP INDEX myindex ON mytable; 或者 ALTER TABLE mytable DROP INDEX myinde

4) 通过 EXPLAIN 分析 SQL 是否使用到索

explain select * from mytable where username = 'jac

注意:如果 key 值为索引名称,则该查询使用了索引,如果 key 值为 null,则表示没有使用索引。

3、索引的使用规则

1) 索引分类

常见的索引类型有:主键索引、唯一索引、普通索引、全文索引、组合索引

主键索引:即主索引,根据主键 pk_clolum(length)建立索引,不允许重复,不允许空值;

唯一索引:用来建立索引的列的值必须是唯一的,允许空值;

 普通索引:用表中的普通列构建的索引,没有任何限制;

全文索引:用大文本对象的列构建的索引;

组合索引:用多个列组合构建的索引,这多个列中的值不允许有空值。

2) 适合建立索引的情况

主键自动建立唯一索引;

经常作为查询条件在 WHERE 或者 ORDER BY 语句中出现的列要建立索引;

作为排序的列要建立索引;

查询中与其他表关联的字段,外键关系建立索引;

高并发条件下倾向组合索引;

用于聚合函数的列可以建立索引;

3) 不适合建立索引的情况

经常增删改的列不要建立索引;

有大量重复的列不建立索引;

表记录太少不要建立索引;

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值