大家好,我是咔咔 不期速成,日拱一卒 之前ElasticSearch系列文章中提到了如何处理空值,若为Null则会直接报错,因为在ElasticSearch中当字段值为null时.空数组.null值数组时,会将其视为该字段没有值,最终还是需要使用exists或者null_value来处理空值 大多数ElasticSearch的数据都来自于各类数据库,这里暂且只针对于MySQL,各个开源软件中都默认兼容各种Null值,空数组等等 若从根源上截断就可以省很多事,直到现在很多开发小伙伴还是坚韧不拔的给…
我们已经知道MySQL使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. 为了处理这种情况,MySQL提供了三大运算符: IS NULL: 当列的值是NULL,此运算符返回true. IS NOT NULL: 当列的值不为NULL, 运算符返回true. <=>: 比较操作符(不同于=运算符),当比较的的两个值为NULL时返回true. 关于 NULL 的条件比较运算是比较特殊的.你不能使用 = NUL…
mysql中null值的排序问题分析   如下表t_user:  name age zhangsan 1 lisi NULL wangwu 2   www.2cto.com   执行一下sql:  Sql代码   select * from t_user order by age;     name age lisi NULL zhangsan 1 wangwu 2   实际上我们是想将没有填写age的记录放在最后,我们可以  Sql代码   select * from t_user order…
系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强人"锁"难<死磕MySQL系列 三> 四.S 锁与 X 锁的爱恨情仇<死磕MySQL系列 四> 看过前几期文章的伙伴会发现并没有聊过关于索引和事务的知识点,这两个大点再之前的文章中已经写过了. 这里给大家一个传送门点击直接查看哈! 揭开MySQL索引神秘面纱 上来就…
大家好,我是咔咔 不期速成,日拱一卒 在平时开发工作中join的使用频率是非常高的,很多SQL优化博文也让把子查询改为join从而提升性能,但部分公司的DBA又不让用,那么使用join到底有什么问题呢? 死磕MySQL系列 一.什么是Nested-Loop Join 在MySQL中,使用Nested-Loop Join的算法进行优化join的使用,此算法翻译过来为嵌套循环连接,并且使用了三种算法来实现. Index Nested-Loop Join :简称NLJ Block Nested-Loo…
系列文章 原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 一生挚友redo log.binlog<死磕MySQL系列 二> 前言 咔咔闲谈 上期根据一条查询语句查询流程分析MySQL的整体架构.同样,本期也使用一条查询SQL语句来做引子.可以肯定的是,查询语句执行的流程更新语句同样也会执行. 因此本期的着重点就不在MySQL架构图上,文章标题也给出了大家重点,就是要了解redo log.binlog. 一.redo log 第一步,创建一个表 user,…
系列文章 一.原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 二.一生挚友redo log.binlog<死磕MySQL系列 二> 三.MySQL强人"锁"难<死磕MySQL系列 三> 获取MySQL各种学习资料 前言 下边两幅图还熟悉吧!就是第三期文章中的前言,但上一期文章并未提及死锁,只是引出了全局锁.表锁的概念.本期文章将继续聊聊锁的内容. Lock wait timeout exceeded; try restar…
有一个问题是这样的统计数据总数用count(*).count(主键ID).count(字段).count(1)那个效率高. 先说结论,不用那么花里胡哨遇到统计总数全部使用count(*). 但是有很多小伙伴就会问为什么呢?本期文章就解决大家的为什么. 系列文章 五分钟,让你明白MySQL是怎么选择索引<死磕MySQL系列 六> 字符串可以这样加索引,你知吗?<死磕MySQL系列 七> 无法复现的"慢"SQL<死磕MySQL系列 八> 什么?还在用de…
群里一个小伙伴在问为什么MySQL字符串不加单引号会导致索引失效,这个问题估计很多人都知道答案.没错,是因为MySQL内部进行了隐式转换. 本期文章就聊聊什么是隐式转换,为什么会发生隐式转换. 系列文章 字符串可以这样加索引,你知吗?<死磕MySQL系列 七> 无法复现的"慢"SQL<死磕MySQL系列 八> 什么?还在用delete删除数据<死磕MySQL系列 九> MySQL统计总数就用count(*),别花里胡哨的<死磕MySQL系列 十…
由于业务随着时间不停的改变,起初的表结构设计已经满足不了如今的需求,这时你是不是想那就加字段呗!加字段也是个艺术活,接下来由本文的主人咔咔给你吹. 试想一下这个场景 事务A在执行一个非常大的查询 事务B毫不犹豫的执行了DDL操作 接下来会发生什么,你如果已经知道答案的话恭喜你又掌握了一个MySQL中重要的知识点. 事务A执行查询时会持有MDL锁,而事务B同样也需要MDL锁,但事务A在进行大查询,所以导致事务B后的所有操作都会被堵塞. 这时你应该知道了在MySQL中所有对表的增删改查都需要申请MD…