mysql索引

如果表的存储引擎是myisam,则可以看到表由三个文件组成。
xxx.frm 表结构
xxx.myd 表数据
xxx.myi 表的索引

创建主键索引
alter table 表名 add primary key (字段)

创建唯一索引
alter table 表名 add unique (字段)
create unique index 索引名 on 表名 (字段)

创建普通索引
alter talbe 表名 add index 索引名 (字段)
create index 索引名 on 表名 (字段)

查看表的索引
show index from 表名G;

创建全文索引

alter table 表名 add fulltext index 索引名 (字段)

1.只有myisam存储引擎支持全文索引,innodb不支持。
2.mysql的全文索引不支持中文。
3.如果一个词出现的机率是50%,是不会做全文索引的,这个词叫停止词。
4.全文索引必须同match()函数一起执行
select * from 表名 where match(字段) against('搜索字符串');

如何使用索引?

1.如果用主键去查询,自动会使用主键索引。
2.如果创建的是复合索引,只有左边的可以用,右边没用。
3.模糊查询的时候,%号或_写在左边是无效的,没有用索引。
4.在条件语句中使用or,or的两边字段都必须要有索引,有一个没有,索引就无法使用。
5.如果一个字段是字符型的,必须用引号引起来,不然无法使用。

myisam表进行碎片整理?

optimize table 表名
原文地址:https://www.cnblogs.com/jkko123/p/6294722.html