
数据库
数据库索引、SQL优化
jmlqqs
这个作者很懒,什么都没留下…
展开
-
MySQL索引-B+树
索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。 索引最形象的比喻就是图书的目录了。注意这里的大量,数据量大了索引才显得有意义,如果我想要在 [1,2,3,4] 中找到 4 这个数据,直接对全数据检索也很快,没有必要费力气建索引再去查找。 索引在 MySQL 数据库中分三类: B+ 树索引 Hash 索引 全文索引 我们今天要介绍的是工作开发中最常接触到的 InnoDB 存储引擎中的 B+ 树索引。要介绍 B+ 树索引,就不得不提二叉查找树,平衡二叉树和 B 树这三种数据结构。原创 2020-09-20 19:17:40 · 1381 阅读 · 1 评论 -
MYSQL之ORDER BY优化
前言:在使用order by时,经常出现Using filesort,因此对于此类sql语句需尽力优化,使其尽量使用Using index。 0.准备 1.创建test表。 drop table if exists test; create table test( id int primary key auto_increment, c1 varchar(10), c2 varchar(10), ...原创 2019-12-09 17:09:35 · 187 阅读 · 0 评论 -
SQL中IN和EXISTS用法的区别
**结论 in()适合B表比A表数据小的情况 exists()适合B表比A表数据大的情况 当A表数据与B表数据一样大时,in与exists效率差不多,可任选一个使用.** select * from A where id in(select id from B) 以上查询使用了in语句,in()只执行一次,它查出B表中的所有id字段并缓存起来.之后,检查A表的id是否与B表中的id相等,如果...原创 2019-12-09 15:38:10 · 89 阅读 · 0 评论 -
MySQL索引失效和EXPLAIN工具:你建立的索引真的起到作用了吗?
在我们使用MySQL的过程中,随着数据量越来越大,查询显得有些吃力,这时候就要针对查询就行优化,针对查询优化,通过给字段添加索引可以提高数据的读取速度,提高项目的并发能力和抗压能力。在上一篇我们讲了给数据库中的表添加索引,来提高它的查询速度,但是会有另外一种情况出现,那就是我们给表中字段加了索引,但是查询的时候依旧很慢,没有什么变化,这时就是因为建立的索引失效了,今天就来讲一讲索引失效的情况! ...原创 2019-12-09 09:58:37 · 321 阅读 · 0 评论 -
索引优化--最佳左前缀法则
通过explain得到结果的key字段,我们可以知道SQL语句中有没有使用索引,以及使用了哪些索引。有时候索引已经建了,但key值依然是NULL,即实际没有使用到,这是索引失效的情况。 索引失效的情况我们需要避免,此时我们需要了解索引使用的一些规则。本文里了解其中的一种规则,也是比较重要的一种–最佳左前缀法则。 现在有一张保存jar包一些信息的表t_jar: CREATE TABLE `t_jar...原创 2019-12-09 10:40:52 · 3564 阅读 · 1 评论 -
良心文章-SQL优化(好文章希望更多人能学到)
本号主要用于分享企业中常用的技术,更加侧重于实用,欢迎关注,继续浏览更多实用的历史文章。 如果你对sql优化不了解,请认真看完这篇文章,并跟着文章动手操作一下,这篇文章讲解了所有方面的优化技巧,此文是摘自我的博客中一篇文章,博客中有一个专栏(共有13篇文章)专门将数据库优化的,如有需要请进入我的博客进行详细查看。 ** 一:基础数据准备 ** 二:五百万数据插入 上面插入几条测试数据,在使用索引...原创 2019-12-09 14:52:36 · 434 阅读 · 0 评论