- 博客(103)
- 问答 (1)
- 收藏
- 关注
原创 MSQL系列(十四) Mysql实战-SQL语句 left join inner join On和Where语句的区别
left join外连接的时候, on 连接条件过滤 和 where 条件过滤 区别就很大了, on 条件是 被驱动表 不匹配的也要展示, 用NULL来填充。如果 上面的例子 你还是没区分出来 on 和 where的 区别, 我们再来一个更加直观的, 一眼就看出来区别。至此,我们已经彻底分清楚了 on语句和where语句的区别, 这对于我们能够正确的处理业务,十分重要。前面我们讲解了Join的底层驱动表 选择原理,也知道了基本的内连接外连接两种SQL查询表连接方式。下面我们来实战SQL演练一下。
2023-11-07 22:07:00
4287
5
原创 MSQL系列(十三) Mysql实战-left/right/inner join 使用详解及索引优化
前面我们讲解了B+Tree的索引结构,也详细讲解下Join的底层驱动表 选择原理,今天我们来了解一下为什么会出现内连接外连接,两种连接方式,另外实战一下内连接和几种最常用的join语法。这个就会带来一个问题, 比如我的驱动表有100条记录,但是我的外连接 我不想让驱动表全部数据加入到结果集, 但是外连接的本质就是不匹配的就展示到结果集,这种情况该如何处理?要按照错误的这个说法,下面的语句执行完 左边不动,还是4条,1,2,3,4 但是明显不是。根据查询结果,我们可以很明确的知道。
2023-11-03 23:43:05
4489
1
原创 MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上
前面我们讲解了B+Tree的索引结构,也详细讲解下 left Join的底层驱动表 选择原理,那么今天我们来实战一下 left join,right join,inner join 等sql命令,看看到底如何用以及如何建立索引和索引优化。上面我们见识到了 如果没有任何条件,我们连接的2个表会形成笛卡尔积,数量膨胀很大,所以 我们在连接的时候一般都需要过滤条件,我们加一些条件,看下效果。但是被驱动表 要匹配记录,需要不停的去查询,匹配,被动表访问了很多很多次。查询结果笛卡尔积, 25条结果。
2023-10-30 23:03:27
834
原创 MSQL系列(十一) Mysql实战-Inner Join算法底层原理及驱动表选择
至此, 我们彻底的了解了 inner join算法驱动表的选择, 也了解了 mysql如何选择驱动表, 如何选择小表, 这对于我们后期SQL分析, 索引优化很重要, 因为我们要在 被驱动表上 添加索引,优化提升我们的查询效率。执行结果, 的确 查询了testD的列, 字段多, 占用 join_buffer 空间大, 就是大表, 所以驱动表就选择 小表 testC, 符合预期。我们知道 join 是where自己选择的驱动表, 选择小表 作为驱动表, 如何判断小表?我们再建一个表用来测试,该表字段较多。
2023-10-30 21:24:41
974
2
原创 MSQL系列(十) Mysql实战-Join驱动表和被驱动表如何区分
在join连接查询中,驱动表在SQL语句执行的过程中总是先被读取。而被驱动表在SQL语句执行的过程中总是后被读取。在读取驱动表数据后,放入到join_buffer后,再去读取被驱动表中的数据来和驱动表中的数据进行匹配。如果匹配成功,就返回结果,否则该丢弃, 继续匹配下一条为什么要小表驱动大表?
2023-10-28 21:19:35
3293
5
原创 MSQL系列(九) Mysql实战-Join算法底层原理
不再是每条每条的取,而是每次都从驱动表每次取一批数据,放到内存中,然后对这一批数据进行匹配操作,当数据操作匹配完毕,就再次从驱动表中取一批数据放到内存中,再次比较,直到数据匹配完毕,完成查询,这种方式就是。在Mysql的查询过程中,我们都知道涉及多表查询,我们都会使用join来连接多个表进行查询,join的本质就是循环每个表进行匹配,join算法可以分为三种形式。至此,我们彻底的了解了 join算法的底层原理,也明确直到了三种方法的优劣,有助于我们再分析索引的时候,更快的定位出问题,进行索引优化。
2023-10-26 00:00:38
803
原创 Elasticsearch实战(二十四)---ES数据建模一对多模型Nested结构
上一篇,我们介绍了 一对多模型,采用Object对象存储的巨大缺陷,本篇文章,我们给出解决办法 就是采用Nested结构来存储数据, 但是Nested查询和读写需要有特定的语法,也就是一定程度上增加了读写的复杂性,但是数据的查询结果是正确的,所以说Nested 才是我们一对多 推荐的一种设计模型。查询结果错误, 要查询 华为手机-发烧的数据,结果把 小米手机查询出来了,这是明显的错误。同样的结果,查询结果没有数据, 也是符合我们预期的,是正确的查询结果。查询结果 不是我们想要的, 是错误的。
2023-07-03 23:41:38
1840
原创 MSQL系列(三) Mysql实战-索引最左侧匹配原则原理
前面我们讲解了索引的存储结构,我们知道了B+Tree的索引结构,索引的叶子节点是严格排序的,就像你看到的 底层叶子节点 15->18->20->30->49->50等等。了解了索引底层的存储结构,我们就能明白最左侧匹配原则的原理,这有利于我们在创建索引的时候,尽可能的优化索引,避免索引失效的场景。下面我们使用组合索引,来介绍以下 最左侧匹配原则 ,我们都知道索引的底层是一颗 B+ 树,那么联合索引呢?按照之前单节点的逻辑,只需要定位到左右子树,查找就行,我们来试一试, 查找第二个字母为 d的目标数据。
2023-05-25 23:27:26
2920
原创 MSQL系列(二) Mysql实战-索引结构B+Tree
对比上面的BTree和B+Tree,我们可以很清晰的看到, 56/56/77 这三个元素下面是没有data数据的,中间元素不保存数据,只用来做索引,所有的数据全都保存在叶子节点,B+Tree有以下特点。磁盘读取完本次需要的数据后,根据局部性原理,一个数据被使用,它的相邻数据可能马上也会被使用,程序需要的数据可能比较集中, 这样磁盘读取会按顺序再多读一部分数据到内存中,避免频繁的磁盘IO读取。B+Tree 叶子节点之间有双向指针,从左到右的索引值是从小到大的顺序排序,可以高效支持范围的查找。
2023-05-16 23:20:50
509
原创 MSQL系列(一) Mysql实战-索引结构 二叉树/平衡二叉树/红黑树/BTree/B+Tree
其实红黑树和上面的平衡二叉树类似, 红黑树是一种自平衡二叉搜索树。
2023-05-15 21:55:34
1010
原创 JVM系列(十一) 垃圾收集器之 Concurrent Mark Sweep 并发标记清除
至此 我们讲解了CMS垃圾收集器的配置参数及如何使用CMS垃圾收集器,并且我们通过程序调试JVM参数,配置了CMS垃圾收集器,打印了GC日志,通过对GC日志的分析,能够很好的在实战中了解到底是哪里出了问题,便于JVM调优。上几篇文章我们讲解了单线程垃圾收集器 Serial/SerialOld ,多线程垃圾收集器 Parallel Scavenge/Old, 本文我们讲解下 Concurrent Mark Sweep 简称CMS垃圾收集器。设置JVM参数,启用CMS垃圾收集器。CMSTest测试类,测试。
2023-04-26 00:25:29
2305
原创 JVM系列(七) JVM 垃圾收集器
我们知道JVM会回收垃圾,但是每种垃圾收集器的收集机制和收集的方法都不一样,今天我们讨论下几种垃圾回收机制。
2023-04-05 16:56:10
804
原创 Elasticsearch实战(二十二)---ES数据建模与Mysql对比 一对一模型
我们如何把Mysql的模型合理的在ES中去实现, 分别分为1. 一对一 模型 2. 一对多 模型 3. 多对多 模型
2022-10-15 22:52:17
1401
原创 Elasticsearch实战(二十一)---ES相关度分数评分优化及FunctionScore 自定义相关度分数算法
ES Function score 自定义相关度分数算法的 实现逻辑根据自己的业务场景去定制自定义相关度分数算法
2022-08-13 18:26:38
2575
原创 Elasticsearch实战(二十)---ES相关度分数评分算法分析及相关度分数优化
ES相关度分数评分算法分析, ES 实现相关度分析底层原理 使用 boolean模型,TFIDF,VSM空间向量模型计算相关度,使用 boost, negativeboost 来增加,削弱 查询条件权重进行分数调优
2022-08-13 17:08:24
3735
原创 Elasticsearch实战(十九)---ES聚合算法易并行聚合算法及近似聚合算法及三角选择原则
ES聚合算法易并行聚合算法及近似聚合算法及三角选择原则,根据场景去选择自己的实现方式
2022-07-31 23:22:00
4002
1
原创 Elasticsearch实战(十八)--ES搜索Doc Values/Fielddata 正排索引 深入解析
ES搜索Doc Values和Fielddata 正排索引 深入解析,对docvalues及fielddata优势劣势及使用场景进行分析
2022-07-31 18:20:53
2071
原创 Elasticsearch实战(十七)---ES搜索如何使用In操作查询及如何Distinct去除重复数据
ES搜索如何使用In操作查询, 如何使用 filter过滤, 多层filter 过滤,如何caidinality去除重复数据
2022-07-17 17:28:09
13495
原创 Elasticsearch实战(十六)---TOP N 实现统计组内排名最高的N条数据及histogram区间统计
es搜索 实现统计组内排名最高的TopN条数据及Histogram区间统计, date_histogram日期区间统计的详细用法
2022-07-11 00:28:23
2699
原创 Elasticsearch实战(十五)---查询query,filter过滤,结合aggs 进行局部/全局聚合统计
es 聚合搜索,查询query,filter过滤,结合aggs 进行局部/全局 global 聚合统计,实现 查询过滤聚合操作,且利用global 实现局部聚合与全局聚合对比
2022-07-10 19:32:51
2855
原创 Elasticsearch实战(十四)---聚合搜索Aggs多层嵌套聚合处理
elasticsearch 聚合操作 搜索 Aggs聚合, 实现Count求和计数,Avg求平均值操作及多层分组嵌套聚合查询
2022-07-10 17:39:20
6160
原创 Elasticsearch实战(十三)---聚合搜索Aggs聚合及Count,Avg操作
elasticsearch 聚合操作 搜索 Aggs聚合, 实现Count求和计数,Avg求平均值操作
2022-07-03 23:53:42
3243
空空如也
JS初学者提问onchange问题,谢谢大神
2016-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人