四时宝库

程序员的知识宝库

1分钟带你学会MySQL覆盖索引,让你的SQL更高效

覆盖索引是MySQL优化sql性能的一种非常重要而且常用的手段,通过覆盖索引,我们可以直接查询到需要的结果,而不用回表,从而大大减少树的搜索次数,非常明显的提升查询性能。

数据如何存储与查找

我们知道,MySQL的数据都是存储在B+树上的,每一个索引都代表一个B+树。

慢 SQL 分析与优化 慢sql优化思路

背景介绍

从系统设计角度看,一个系统从设计搭建到数据逐步增长,SQL 执行效率可能会出现劣化,为继续支撑业务发展,我们需要对慢 SQL 进行分析和优化,严峻的情况下甚至需要对整个系统进行重构。所以我们往往需要在系统设计前对业务进行充分调研、遵守系统设计规范,在系统运行时定期结合当前业务发展情况进行系统瓶颈的分析。

MySQL相关:索引数据模型推演及 B+Tree 的详细介绍

推荐阅读:

MySQL进阶:为什么mysql使用B+树作为索引的数据结构?

索引提高查询效率,就像我们看的书,想要直接翻到某一章,是不是不用一页一页地翻,只需要看下目录,根据目录找到其所在的页数即可。

在计算机中我们需要一种数据结构来存储这个目录,常见数据结构有哈希表,二叉查找树,二叉平衡树(AVL),红黑树,那为什么Innodb和MyISAM选择b+树呢。

1. 哈希表

MySQL的7类索引,助你让MySQL飞得更高

作者:@溪竹

链接:https://blog.csdn.net/weixin_42181824/java/article/details/82261988

导引

本文介绍了七种MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令MySQL的查询和运行更加高效。

MySQL索引是怎么支撑千万级表的快速查找?

前言

MySQL 官方提到,改善操作性能的最佳方法

mysql主键或者唯一索引重复插入失败解决方案

我们知道,mysql 如果设置了主键或者唯一约束,再插入相同的值会报错。

假设表中设置name字段为唯一索引,在存在 name = '张三' 的情况下,再插入"张三",

insert into sc (name,class,score) values ('张三','三年二班',90);

报错信息如下:> 1062 - Duplicate entry '张三' for key 'name'

MySQL千万级大表优化,看这一篇就忘不掉了

千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。

从一开始脑海里火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。

既然要吃透这个问题,我们势必要回到本源,我把这个问题分为三部分:“千万级”,“大表”,“优化”,也分别对应我们在图中标识的“数据量”,“对象”和“目标”。

我来逐步展开说明一下,从而给出一系列的解决方案。

Mysql:明明加了唯一索引,怎么还是出现重复数据了呢?

前几天,业务组的小伙伴找到我,说在一张核心业务表上使用了MySQL的唯一索引,谁知索引没生效,依然产生了重复数据,导致出现了线上bug,被老大怼了一顿,小伙子一脸疑惑:本地测试好好的,怎么一到上线就出问题了呢?

MySQL的唯一索引很好用,但是有些坑还是要提前了解的,要不掉进去,摔得可老疼了。下面让我们复现一下小伙伴的问题,分析一下为什么会这样?

首先,创建一张product_unique表:

mysql 回表、索引覆盖、最左匹配、索引下推

版权声明:本文为CSDN博主「java叶新东老师」的原创文章

原文链接:https://blog.csdn.net/qq_27184497/article/details/119274535

前言

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接