数据库索引

索引概述

所有MySQL列类型都可以被索引,对相关列使用索引是提高SELECT操作性能的最佳途径。

存储引擎默认支持的索引(B-Tree索引)

MyISAM和InnoDB存储引擎的表默认创建的都是BTREE(多路搜索树)索引。

MySQL支持的两种索引

  • (Hash索引)
  • (B-Tree索引)
    MyISAM和InnoDB都支持B-Tree索引,
    MEMOEY/HEAP引擎可以支持Hash索引。

MySQL不支持函数索引

  • MySQL不支持函数索引,但是能对列的前面某一部分进行索引,称之为前缀索引。
    例如name字段,可以只取name的前4个字符进行索引,这个特性可以大大缩小索引文件的大小,用户在设计表结构的时候也可以对文本列根据此特性进行灵活设计。

多列索引

  • 对于创建的多列索引,只要查询条件使用到了多列索引中最左边的列,索引一般都会被使用,如果查询条件没有使用最左边的列,这时索引一般不会被使用。这就是索引的前缀特性。即使查询条件不齐全,只要使用了左边的列,那么索引一般会被使用。
  • 使用like时,当%在第一位将不会使用索引,不在第一位将使用索引,。
  • 对于大文本使用全文索引。
  • 如果列名是索引,column_name is null将使用索引。


    语句说明

MySQL索引创建语法

参考

  • 一、使用ALTER TABLE语句


  • 二、使用CREATE INDEX语句


  • 三、删除索引


你可能感兴趣的:(数据库索引)