美文网首页
MySQL索引的使用规则和设计原则

MySQL索引的使用规则和设计原则

作者: 萧修 | 来源:发表于2023-03-30 11:42 被阅读0次

SQL提示

user 建议其使用哪个索引

select *from tb user index(xx) where pro = '';

ognore 忽略其索引使用

select *from tb agnore index(xx) where pro = '';

force 强制其使用索引

select * from tb force index(xx) where pro = '';

覆盖索引和回表查询

覆盖索引

尽量使用覆盖索引(查询使用了索引,并且需要返回的列,在该索引中,已经全部找到),减少select*。

回表查询

以每个字段为建立的索引(包括联合索引),在此索引表找不到需要返回的数据,就需要从聚集索引中查找,这个过程叫做回表查询。

前缀索引

当字段类型为字符串(varchar、text等)时,有时候需要索引很长的字符串,这会让索引变得很大,查询时,浪费大量的磁盘IO,影响查询效率。此时可以只将字符串的一部分前缀,建立索引,这样大大节约索引空间,从而提高效率。

#建立前缀索引语法
create index idx_xxx on table_name(column(n))

索引长度

可以根据索引的选择性来确定,而选择性指不重复的索引值和数据表的记录总数的比值,索引选择性越高查询效率越高,唯一索引的选择性为1,最好的索引,性能最好。

查询某字段数值不重复

#不重复distinct
select count(distinct email) from tb_name;

#选择性
select count(distinct email)/count(*) from tb_name;

单列联合索引

单列索引:即一个索引只包含单个列
联合索引:即一个索引包含多个列
业务场景 ,查询多个字段,优先使用联合索引

索引设计原则

  1. 数据量大,且查询比较频繁的表建立索引
  2. 针对常作为查询条件,排序,分组操作的字段建立索引
  3. 选择区分度高的建立索引,区分度高,查询效率高
  4. 字符串类型,尽量选择前缀索引
  5. 尽量使用联合索引
  6. 控制索引数量,占据磁盘
  7. 索引列的null,使用not null约束,有助于数据库自我识别

相关文章

  • 索引(二)

    mysql索引的新手入门详解mysql索引之三:索引使用注意规则 索引(Index)是帮助 MySQL 高效获取数...

  • mysql索引及类型

    一、什么是mysql索引? 打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索...

  • MySQL 索引

    MySQL索引的好处不言而喻,如果对MySQL正确合理设计并且使用索引就好像是一辆法拉利,然而没有设计和使用索引的...

  • MySQL InnoDB索引设计指南

    一、索引设计原则 在MySQL中常用的B+树索引分为聚簇索引和辅助索引,关于辅助索引,虽然个数没有限制(聚簇索引一...

  • BAJT 中高级 Java 面试题,你能答上几道?附答案

    数据库 使用mysql索引都有哪些原则?索引什么数据结构?B+tree和B tree什么区别? mysql有哪些存...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • 走向DBA之索引

    前言:如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车...

  • MySQL索引建立和使用的基本原则

    MySQL索引建立和使用的基本原则:合理建立和使用索引。在关键字段的索引上,建与不建立,查询速度相差近100倍差的...

  • mysql 知识点汇总

    1. 使用 mysql 索引都有哪些原则? 只对WHERE和ORDER BY需要查询的字段设置索引,避免无意义的硬...

  • 建索引的几大原则

    [toc] 建立索引的规则原则 左前缀匹配原则,非常重要的原则,MySQL会一直向右匹配直到遇到<、>、betwe...

网友评论

      本文标题:MySQL索引的使用规则和设计原则

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