索引可以加快大数据量的查询速度,索引本质上也是一张表保存主键和索引字段,并指向实体表的记录,因此如果滥用索引可能会导致更新数据的速度降低,因为mysql不仅仅需要保存数据还要保存索引,索引分为单列索引和组合索引,单列索引只一张表多个列单独为索引,组合索引是一个索引包含多个列。Mysql数据库多为B+tree来实现索引

关于组合索引的最佳左前缀法则,组合索引在引用的时候,不能中断,不能没有最左侧索引。例子一个名为idx的索引包涵name(a) age(b) msg(c)三个字段。

 

关于mysql索引一下概念(组合索引失效条件)

索引失效的几种情况:

在索引上做任何操作(计算,函数,自动或者手动的类型转换)会导致索引失效转为全表扫描

在使用不等于符号(!=),会导致索引失效。

字符串不加单引号也会导致索引失效(猜测为自动的类型转换)

使用or作为条件链接也会有可能导致失效

创建索引

Create INDEX indexname ON tablename(column_name)

CREATE INDEX idx_nameAgePos ON staff(name, age, pos);

修改表结构(添加索引)

alter table tablename add INDEX

删除索引

DROP INDEX [indexName] ON mytable;

 

关于:Explain

Explain 是mysql里查询语句是否使用了索引 是否使用了全局扫描一般用于优化sql语句。

相关文章:

  • 2021-10-25
  • 2021-11-28
  • 2021-09-14
  • 2022-12-23
  • 2022-12-23
  • 2021-12-23
  • 2022-12-23
猜你喜欢
  • 2021-04-20
  • 2022-12-23
  • 2021-07-31
  • 2022-12-23
  • 2021-08-11
  • 2021-12-07
相关资源
相似解决方案