为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第18天 MySQL8.0 优化索引器

标签:
MySQL

第一板块:玩转MySQL8.0新特性,3-1;3-2;3-3,董旭阳

第二,三板块:

  1. MySQL 8.x中新增了三种索引方式:

    (1)隐藏索引:

    MySQL 8.0开始支持隐藏索引(invisible index),不可见索引。

    隐藏索引不会被优化器使用,但仍然需要进行维护。

    应用场景:软删除、灰度发布。

    (2)降序索引

    MySQL 8.0开始真正支持降序索引(descending index)。

    只有InnoDB存储引擎支持降序索引,只支持BTREE降序索引。

    MySQL 8.0不再对GROUP BY操作进行隐式排序

    (3)函数索引

    MySQL 8.0.13开始支持在索引中使用函数(表达式)的值。

    支持降序索引,支持JSON数据的索引

    函数索引基于虚拟列功能实现

//举例:隐藏索引

// 登录MySQL,创建testdb数据库,并在数据库中创建一张测试表t1
mysql> create database if not exists testdb;
Query OK, 1 row affected (0.58 sec)
mysql> use testdb;
Database changed
mysql> create table if not exists t1(i int, j int);
Query OK, 0 rows affected (0.05 sec)

//在字段i上创建索引,如下所示。
mysql> create index i_idx on t1(i);
Query OK, 0 rows affected (0.34 sec)
Records: 0  Duplicates: 0  Warnings: 0

// 在字段j上创建隐藏索引,创建隐藏索引时,只需要在创建索引的语句后面加上invisible关键字,如下所示
mysql> create index j_idx on t1(j) invisible;
Query OK, 0 rows affected (0.01 sec)
Records: 0  Duplicates: 0  Warnings: 0
// 查看t1表中的索引情况,如下所示
mysql> show index from t1 \G
*************************** 1. row ***************************
        Table: t1
   Non_unique: 1
     Key_name: i_idx
 Seq_in_index: 1
  Column_name: i
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment: 
Index_comment: 
      Visible: YES
   Expression: NULL
*************************** 2. row ***************************
        Table: t1
   Non_unique: 1
     Key_name: j_idx
 Seq_in_index: 1
  Column_name: j
    Collation: A
  Cardinality: 0
     Sub_part: NULL
       Packed: NULL
         Null: YES
   Index_type: BTREE
      Comment: 
Index_comment: 
      Visible: NO
   Expression: NULL
2 rows in set (0.02 sec)
// 使隐藏索引对优化器可见
mysql> select @@optimizer_switch \G 
*************************** 1. row ***************************
@@optimizer_switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,duplicateweedout=on,subquery_materialization_cost_based=on,use_index_extensions=on,condition_fanout_filter=on,derived_merge=on,use_invisible_indexes=off,skip_scan=on,hash_join=on
1 row in set (0.00 sec)



第四板块:

https://img1.sycdn.imooc.com//632dd1940001039119000846.jpg

https://img1.sycdn.imooc.com//632dd194000194fd19020836.jpg

https://img1.sycdn.imooc.com//632dd4060001329318980847.jpg


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消