专栏首页PHP开发者那些事mysql索引优化要点

mysql索引优化要点

可以使用B-tree索引的查询类型:

  • 全值匹配:和索引中的所有列进行匹配
  • 匹配最左前缀:即使用索引的第一列
  • 匹配列前缀:即匹配索引的第一列值的部分
  • 匹配范围值:匹配索引值的范围
  • 精确匹配某一列并范围匹配另外一列
  • 只访问索引的查询

B-Tree索引限制:

  • 如果不是按照索引的最最左列开始查找则无法使用索引。
  • 不能跳过索引中的列,即不能直接使用索引中中间的列,只能使用索引第一列
  • 如果查询中有某个列表的范围查询,则其右边所有的列都无法使用索引优化查找,如like,!=等。如果查询值的范围有限制,那么可以通过使用多个等于条件来代替范围条件。

哈希索引说明:

  • 存储引擎会对数据列计算一个hash值
  • 哈希索引只支持等值比较查询。
  • 哈希索引的速度非常快,除非有很多哈希冲突。
  • 哈希索引不是按照索引值顺序存储的,所以不能用于排序
  • 哈希索引不支持部分索引列匹配查找

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • PHP中几个回调相关的方法

    槽痞
  • go 笔记

    结构体:定义的一组字段的集合 结构体初始化,new(Student) == &Student{}是等价的。 接口:定义的一组方法的集合

    槽痞
  • ElasticSearch安装记录

    安装官方说明: https://www.elastic.co/guide/en/elasticsearch/reference/6.7/getting-star...

    槽痞
  • 数据库索引

    Mister24
  • 常见问题:索引

    本文档解决了有关MongoDB 索引的一些常见问题 。有关索引的更多信息,请参阅 索引。

    MongoDB中文社区
  • 面试中有哪些经典的数据库问题?

    1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯...

    java思维导图
  • 看了这篇MySQL,开发功力又升级

    大家好,我是小菜,一个渴望在互联网行业做到蔡不菜的小菜。可柔可刚,点赞则柔,白嫖则刚! 死鬼~看完记得给我来个三连哦!

    蔡不菜丶
  • 24 个MySQL面试题,Java 程序员又知道多少呢?

    1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。

    lyb-geek
  • MySQL 索引及查询优化总结

    本文主要讨论 MySQL 索引原理及常用的 sql 查询优化。

    谢庆玲
  • Oracle 索引的分类

    看到 itpub 论坛上的一个帖子,对 Oracle 的索引分类总结得言简意赅,于是收藏过来。又补充了一点RAC用到的反向索引的东西。 逻辑上:  Single...

    用户1148526

扫码关注云+社区

领取腾讯云代金券