覆盖索引是MySQL优化sql性能的一种非常重要而且常用的手段,通过覆盖索引,我们可以直接查询到需要的结果,而不用回表,从而大大减少树的搜索次数,非常明显的提升查询性能。
数据如何存储与查找
我们知道,MySQL的数据都是存储在B+树上的,每一个索引都代表一个B+树。
2024年12月27日
覆盖索引是MySQL优化sql性能的一种非常重要而且常用的手段,通过覆盖索引,我们可以直接查询到需要的结果,而不用回表,从而大大减少树的搜索次数,非常明显的提升查询性能。
我们知道,MySQL的数据都是存储在B+树上的,每一个索引都代表一个B+树。
2024年12月27日
从系统设计角度看,一个系统从设计搭建到数据逐步增长,SQL 执行效率可能会出现劣化,为继续支撑业务发展,我们需要对慢 SQL 进行分析和优化,严峻的情况下甚至需要对整个系统进行重构。所以我们往往需要在系统设计前对业务进行充分调研、遵守系统设计规范,在系统运行时定期结合当前业务发展情况进行系统瓶颈的分析。
2024年12月27日
索引提高查询效率,就像我们看的书,想要直接翻到某一章,是不是不用一页一页地翻,只需要看下目录,根据目录找到其所在的页数即可。
在计算机中我们需要一种数据结构来存储这个目录,常见数据结构有哈希表,二叉查找树,二叉平衡树(AVL),红黑树,那为什么Innodb和MyISAM选择b+树呢。
2024年12月27日
作者:@溪竹
链接:https://blog.csdn.net/weixin_42181824/java/article/details/82261988
本文介绍了七种MySQL索引类型。在数据库表中,对字段建立索引可以大大提高查询速度。通过善用这些索引,可以令MySQL的查询和运行更加高效。
2024年12月27日
我们知道,mysql 如果设置了主键或者唯一约束,再插入相同的值会报错。
假设表中设置name字段为唯一索引,在存在 name = '张三' 的情况下,再插入"张三",
insert into sc (name,class,score) values ('张三','三年二班',90);
报错信息如下:> 1062 - Duplicate entry '张三' for key 'name'
2024年12月27日
千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议。
从一开始脑海里火光四现,到不断的自我批评,后来也参考了一些团队的经验,我整理了下面的大纲内容。
既然要吃透这个问题,我们势必要回到本源,我把这个问题分为三部分:“千万级”,“大表”,“优化”,也分别对应我们在图中标识的“数据量”,“对象”和“目标”。
我来逐步展开说明一下,从而给出一系列的解决方案。
2024年12月27日
前几天,业务组的小伙伴找到我,说在一张核心业务表上使用了MySQL的唯一索引,谁知索引没生效,依然产生了重复数据,导致出现了线上bug,被老大怼了一顿,小伙子一脸疑惑:本地测试好好的,怎么一到上线就出问题了呢?
MySQL的唯一索引很好用,但是有些坑还是要提前了解的,要不掉进去,摔得可老疼了。下面让我们复现一下小伙伴的问题,分析一下为什么会这样?
首先,创建一张product_unique表:
2024年12月27日
版权声明:本文为CSDN博主「java叶新东老师」的原创文章
原文链接:https://blog.csdn.net/qq_27184497/article/details/119274535