博客
关于我
mysql索引
阅读量:788 次
发布时间:2023-02-13

本文共 1038 字,大约阅读时间需要 3 分钟。

MySQL索引详解

在数据库设计中,索引是提高查询性能的重要工具。本文将详细介绍MySQL中的索引种类、创建原则以及常见知识点。

一、索引种类

  • 普通索引

    普通索引(Index)对关键字没有特殊要求,主要用于提升查询速度。

  • 唯一索引

    唯一索引(Unique Index)要求关键字不能重复,并自动添加唯一约束。

  • 主键索引

    主键索引(Primary Key Index)不仅要求关键字不重复,还不能为NULL,并添加主键约束。

  • 全文索引

    全文索引(Fulltext Key)从字段中提取关键词,用于匹配文本内容。

  • 复合索引

    复合索引(Composite Index)通过多个字段提升查询效率,需遵循“最左前缀”原则。

  • 使用EXPLAIN检查索引

    通过EXPLAIN语句可查看索引状态,分析查询是否使用了索引。


  • 二、索引原则

  • 频繁出现在关键字order by、group by、distinct后的字段建立索引

    索引字段顺序需与这些关键字后的字段顺序一致,否则索引未被使用。

  • 避免在经常未被查询的列、重复值较多的列建立索引

    这类字段索引效果有限,甚至可能影响性能。

  • 避免在text、image和bit类型字段建立索引

    这些类型的字段通常不需要索引,因为它们的数据量大且查询效率低。

  • 避免在经常更新的字段建立索引

    索引虽提升查询速度,但过多索引会影响数据更新性能。

  • 主键和外键字段必须建立索引

    主键和外键字段的索引能显著提升查询效率。


  • 三、知识点

  • InnoDB存储引擎的主键索引

    InnoDB的主键索引与数据记录存储在一起(聚簇存储)。

  • 主键索引与辅助索引的区别

    主键索引用于快速定位记录,辅助索引用于加速查询,但辅助索引查询时仍需通过主键索引找到数据。

  • MySQL优化规则

    如果索引列的条件在OR前存在,后面的条件若无索引,整个索引将失效。

  • 字符串类型字段的查询

    查询时必须给值加引号,否则索引失效。例如,WHERE name = "100" 才能使用索引。

  • 复合索引的注意事项

    复合索引需遵循“最左前缀”原则,才能在查询时有效使用。

  • 允许NULL的字段建立索引

    NULL字段可建立索引,但需注意索引大小。

  • LIKE查询的索引规则

    WHERE name LIKE "%wang%" 不走索引,而WHERE name LIKE "wang%" 会走索引。


  • 通过合理设计和优化索引,可以显著提升MySQL的查询性能。建议根据实际查询需求选择合适的索引类型,并遵循索引原则,避免过度索引。

    转载地址:http://xxdfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL支撑百万级流量高并发的网站部署详解
    查看>>
    MySQL改动rootpassword的多种方法
    查看>>
    mysql数据分组索引_MYSQL之索引配置方法分类
    查看>>
    mysql数据取差,mysql屏蔽主外键关联关系
    查看>>
    MySQL数据和Redis缓存一致性方案详解
    查看>>
    MySQL数据和Redis缓存一致性方案详解
    查看>>
    Mysql数据库 InnoDB存储引擎中Master Thread的执行流程
    查看>>
    MySQL数据库 范式
    查看>>
    Mysql数据库B-Tree索引
    查看>>
    mysql数据库io空闲_mysql数据库磁盘io高的排查
    查看>>
    mysql数据库root密码忘记,查看或修改的解决方法
    查看>>
    MySQL数据库SQL注入靶场sqli通关实战(附靶场安装包)
    查看>>
    MYSQL数据库下载安装(Windows版本)
    查看>>
    MySQL数据库与Informix:能否创建同名表?
    查看>>
    mysql数据库中的数据如何加密呢?mysql8.0自带新特性
    查看>>
    MySQL数据库优化
    查看>>
    MySQL数据库优化总结
    查看>>
    Mysql数据库函数contac_函数:函数删除操作语法&使用例——《mysql 从入门到内卷再到入土》...
    查看>>
    mysql数据库命令备份还原
    查看>>
    mysql数据库基础教程
    查看>>