美文网首页
mysql 几种索引

mysql 几种索引

作者: crazysungogogo | 来源:发表于2020-10-19 10:36 被阅读0次
  • 隐藏索引 invisible index 8版本以上
    1、软删除 将索引隐藏 但是索引依然会被维护。可以观察删除索引后是否有影响
    2、灰度发布 设置一个影藏索引 观察是否有效 有效再将索引可见

      create index index_field on table_test(field) invisible;
      show index from table_test;
    
  • 降序索引 8版本以上
    8版本 innodb btree 支持真正降序索。 如果一个查询,需要对多个列进行排序,且顺序要求不一致。在这种场景下,要想避免数据库额外的排序-“filesort”,只能使用降序索引。

    create table test(field1 int ,field2 int, index idx1(field1 asc,field2 desc));
    -- 8以下版本 需要进行额外filesort  8是backward index scan;
    explain select * from test order by field1,field2 desc;
    
  • 函数索引
    基于虚拟列实现的函数索引。

      1、创建虚拟列
      alter table t_log add column create_time_index datetime GENERATED               ALWAYS AS (date_format(create_time,'%Y-%m-%d'));
      2、对虚拟列建立索引
      alter table t_log add index_create_time_idx(create_time_index);
      3、可以对json格式数据添加虚拟列、索引 注意 json格式如果是字符串 查询时需要加上字符串转义。
     select * from test where `name` = ’\"khaskdjlasjldjlsajldj\"’;
    
  • 全文索引
    MySQL 5.7.6 开始,MySQL内置了ngram全文解析器,用来支持中文、日文、韩文分词。
    普通索引只能支持前缀匹配,不能进行 like '%test%' 这种查询

    CREATE TABLE articles (
    id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
    title VARCHAR (200),
    body TEXT,
    FULLTEXT (title, body) WITH PARSER ngram
    ) ENGINE = INNODB DEFAULT CHARSET=utf8mb4 COMMENT='文章表';
    
    ALTER TABLE articles ADD FULLTEXT INDEX title_body_index   (title,body) WITH PARSER ngram;
    insert into `med`.`articles` ( `title`, `body`) values ( 'aaaa神经aaaa', 'aaaaa精神aaaa');
    
    explain SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('精神');
    
  • hash索引
    hash索引单个查找速度快 缺点不支持范围查找

  • btree索引
    btree索引内部是一颗b+树 支持范围查找

相关文章

  • Mysql 索引那些事

    Mysql 索引那些事 MySQL 常见几种索引类型 MyISAM 和 InnoDB 索引实现2.1. MyISA...

  • MySQL索引简述--BTree索引

    MySQL数据库有如下几种常见的索引类型: BTree索引 哈希索引 全文索引 索引的本质 MySQL官方对索引的...

  • MySQL索引类型总结和使用技巧以及注意事项

    索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型...

  • mysql索引使用

    索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型...

  • MySQL索引使用

    索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。 下面介绍几种常见的MySQL索引类...

  • MySQL之索引大法

    1.什么是索引? MySQL索引的建立针对于数据查询操作,索引可以大大提高MySQL的检索速度 Mysql目前几种...

  • 重新学习Mysql数据库4:Mysql索引实现原理

    MySQL索引类型 一、简介 MySQL目前主要有以下几种索引类型:1.普通索引2.唯一索引3.主键索引4.组合索...

  • 【Mysql】索引的类型最完整介绍

    一、简介 Mysql主要的几种索引类型: 普通索引 唯一索引 主键索引 综合索引 全文索引 语句 1、unique...

  • 2020数据库最新面试题常考汇总

    [toc] MySQL索引 1.数据库中有哪些索引类型? 索引的几种类型:唯一索引、主键索引、聚集索引、普通索引、...

  • mysql 几种索引

    隐藏索引 invisible index 8版本以上1、软删除 将索引隐藏 但是索引依然会被维护。可以观察删除...

网友评论

      本文标题:mysql 几种索引

      本文链接:https://www.haomeiwen.com/subject/komvektx.html