MySQL入门学习-深入索引.隐藏索引

       隐藏索引是 MySQL 8.0 引入的一个特性。隐藏索引不会被查询优化器使用,但仍然会被数据库系统维护。

一、特点:

       1. 隐藏索引可以用于在不删除索引的情况下,测试查询在没有该索引时的性能表现。
       2. 可以在某些情况下暂时禁用某些索引,而无需实际删除它们,以便在需要时可以快速恢复使用。

二、使用方法:

       可以使用 'ALTER TABLE' 语句来设置索引为隐藏或可见。

将索引设置为隐藏的语法:

ALTER TABLE table_name ALTER INDEX index_name INVISIBLE;

将隐藏索引设置为可见的语法:

ALTER TABLE table_name ALTER INDEX index_name VISIBLE;

三、与其他索引的比较:

       1. 与普通索引、唯一索引等不同,隐藏索引不会被查询优化器在查询计划中考虑。
       2. 普通索引和唯一索引等是为了提高查询性能而创建的,会被查询优化器根据查询条件来决定是否使用。

五、高级应用:

       在进行数据库性能优化时,可以通过将一些不太重要的索引设置为隐藏索引,然后观察系统的性能变化。如果性能没有受到明显影响,那么可以考虑删除这些索引以减少维护成本。

以下是一个示例代码,演示如何创建一个索引并将其设置为隐藏索引:

-- 创建表
CREATE TABLE example (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50),
    age INT
);

-- 创建普通索引
CREATE INDEX idx_age ON example (age);

-- 将索引设置为隐藏索引
ALTER TABLE example ALTER INDEX idx_age INVISIBLE;

       在上述示例中,首先创建了一个名为 'example' 的表,并在 'age' 列上创建了一个普通索引 'idx_age'。然后,使用 'ALTER TABLE' 语句将该索引设置为隐藏索引。 
(文章为作者在学习MySQL过程中的一些个人体会总结和借鉴,如有不当、错误的地方,请各位大佬批评指正,定当努力改正,如有侵权请联系作者删帖。)

  • 11
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值