mysql 索引

1.索引的作用:

1.快速查询

2.表书库很大时,可以提高查询速度

3.加快表和表之间连接速度

4.可以提高分组和排序的速度

2.索引的副作用

索引也需要占用额外的磁盘空间 innodb 表数据文件本身也是索引,myisam索引和数据文件是分离的。

更新一个包含索引的表,要比更新一个没有索引表花费的时间更多,更新表的值,也就是更新索引。

3.创建表的时候需要考虑的因素

1.关联程度 3张表 选好关联字段

2.每个字段的长度,也要考虑

3.设计合理的索引列

4.表数据,要控制在合理的范围之内。可以在牺牲一定性能的条件下,满足需求。5秒以上就要考虑优化了。10秒以上一般是出问题了。(缓存失效,缓存击穿。缓存雪崩)

4.索引类型

BTREE mysql orcale 默认都是树形结构的索引

hash:散列值,只能=int() < = > hash是不能排序的,排序时,索引是失效的。

5.添加普通索引

在创建表中添加

index name_index (name)

修改方式添加

ALTER TABLE member add index cardid_index (card_id);

创建

create index name_index on test (name);

6.唯一索引

在创建表中添加

UNIQUE cardid_index (card_id)

创建

CREATE UNIQUE index phone_index on member(phone);

修改方式添加

alter table member add UNIQUE address_index (address);

7.全文索引

在创建表中添加

notes text

fulltext notes_index (notes)

创建

create FULLTEXT index notes_index on test2 (notes);

修改方式添加

alter table test3 add fulltext notes_index (notes)

8.联合索引

在创建表中添加

UNIQUE index name_carid_phone (name,card_id,phone)

创建

create index index_union on test3 (carf_id,phone)

修改方式添加

alter table test3 add index name_carid_phone (name,card_id,phone)

你可能感兴趣的:(mysql,数据库)