MySQL-8. mysql索引

  • 说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,查询速度就可能提高百倍干倍。
  • 索引本身会占用空间,以空间换时间。索引的代价:磁盘占用,影响DML语句效率(增删改),因为改动后要对索引进行维护,影响速度,但实际应用中,SELECT语句比DML多得多,所以代价可以容忍。
  • 创建索引后,只对创建了索引的列有效。
  • 索引为什么快?创建了一个数据结构,如二叉树、b树、b+树等。
  • 索引有四种:主键、唯一、普通、全文索引

索引的应用场景:

  • 较频繁的作为查询条件字段应该创建索引
  • 唯一性太差的字段不适合单独创建索引
  • 更新非常频繁的字段不适合创建索引
  • 不会出现在WHERE子句中字段不该创建索引

8.1 主键索引primary key

主键自动为主键索引,如果先建表,再指定索引:
ALTER TABLE t26 ADD PRIMARY KEY (id);

8.2 唯一索引unique

unique也自动为唯一索引,如果先建表,再指定索引:
-- 添加唯一索引
CREATE UNIQUE INDEX id_index ON table1 (id);

8.3 普通索引index

用的较多。
如果某列的值,是不会重复的,则优先考虑使用 unique 索引, 否则使用普通索引。
-- 添加普通索引方式 1
CREATE INDEX id_index ON table1 (id);

-- 添加普通索引方式 2
ALTER TABLE table1 ADD INDEX id_index (id)

8.4 全文索引fulltext

不好用,实际使用全文搜索solr和ElasticSearch(ES)。

8.5 删除索引

-- 删除索引
DROP INDEX id_index ON t25
-- 删除主键索引
ALTER TABLE t26 DROP PRIMARY KEY

8.6 修改索引

先删除,再添加新索引

8.7 查询索引

-- 1. 方式
SHOW INDEX FROM t25
-- 2. 方式
SHOW INDEXES FROM t25
-- 3. 方式
SHOW KEYS FROM t25
-- 4 方式
DESC t25
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值