索引

索引

什么是索引

  • 索引是用于快速找出在某个列中有一特定值的行。
  • 不使用索引,MySQL必须从第1条记录开始然后读完整个表直到找出相关的行。表越大,花费的时间越多。如果表中查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要看所有数据。
  • 当然索引也不易过多,索引越多写入,修改的速度越慢。因为,写入修改数据时,也要修改索引。

MySQL 的索引类型

索引类型 功能说明
普通索引 最基本的索引,它没有任何限制
唯一索引 某一行企用了唯一索引则不准许这一列的行数据中有重复的值。针对这一列的每一行数据都要求是唯一的
主键索引 它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引,常用于用户ID。类似于书中的页码
全文索引 对于需要全局搜索的数据,进行全文索引。一般用于检索检索文本信息的
  • 普通索引
类型 详细说明
基本语法 alter table 表 add index(字段)
示例 ALTER TABLE money ADD INDEX(username);
示例解释 为money表的username字段增加索引
  • 唯一索引
类型 详细说明
基本语法 alter table 表 add UNIQUE(字段)
示例 ALTER TABLE money ADD UNIQUE(email);
示例解释 为money表的email字段增加唯一索引
  • 主键索引
类型 详细说明
基本语法 alter table 表 add PRIMARY KEY(字段)
示例 ALTER TABLE money ADD PRIMARY KEY(id);
示例解释 为money表的id字段增加主键索引
  • 全文索引
类型 详细说明
基本语法 alter table 表 add FULLTEXT(字段)
示例 ALTER TABLE money ADD FULLTEXT(content);
示例解释 为money表的content字段增加唯一索引

删除索引

  • Alter table 表 drop index 索引名;

检查索引是否引用

  • mysql在使用like查询的时候只有使用后面的%时,才会使用到索引。
    EXPLAIN SELECT * FROM `user` WHERE username LIKE 't_%';

引擎

  • MySQL5.6以前的版本:
    • InnoDB:MySQL默认引擎,支持事务
    • MyISAM:不支持事务,支持全文索引
  • MySQL5.6以后的版本:
    • MyISAM和InnoDB存储引擎均支持全文索引
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容