大白话btree和b+tree

引语作为一直后端程序猿,经常会看到好几个关于树的概念,平衡二叉树,二叉搜索树,avl树,btree,b+tree等等。没有弄清楚的时候,放到一起很容易弄混。今天咱们就来捣鼓捣鼓这几个名词,理解一下它们都是啥。本文会从二叉树由浅入深介绍到b+tree,,对于不同的树的插入删除先不谈,主要用于帮助不清楚概念的童鞋理解这些名词代表的什么样的数据结构,暂不涉及红黑树(这玩意要写起来篇幅有点长,下次可...
分类: 其他 发布时间: 09-13 23:32 阅读次数: 0

mysql索引使用策略

引语:最近看了《高性能mysql》,虽然还没看完,但是觉得确实写得挺好的。索引部分看完还是对自己创建索引和了解mysql的索引运行原理有了很大的帮助。做了些关于索引的笔记,遇到问题的时候可以回溯下参考下。1.索引的优点:要是对mysql索引的基本概念还不太清楚的话,可以看下我之前的两篇博客。mysql聚簇索引和非聚簇索引,大白话btree和b+tree。1.1 索引大大减少了服务器需要...
分类: 其他 发布时间: 09-13 23:31 阅读次数: 0

要不要一起组队刷题呀leetcode19题

导语最近跟几个同学一起建了一个刷题的群,相互学习学习,就写写题解,推广推广吧。(虽然我知道并没有啥粉丝)这个算一篇发起刷题的文章吧,文章流程是写了leetcode的一个题解,为后面建群学习抛砖引玉,然后建了一个leetcode刷题的群,咱们可以相互监督,相互解答,相互提高自己的算法水平,开阔思路。毕竟程序就是算法加数据结构,而刷题能很大程度的提高咱们算法和数据结构的熟练度和让自己变得更聪明。...
分类: 其他 发布时间: 09-13 23:31 阅读次数: 0

mysql服务器性能分析

前言最近看了下高性能mysql的服务器性能剖析章节,看完了记录一下,梳理一下学习的东西。1.什么是性能优化书中提出了简单的解释 在服务正常运转的情况下,减少了服务的响应时间(后面用rt代替响应时间)。那么既然我们要减少服务的响应时间,也就是说我们优化之后的rt是小于之前的rt的,这里的前提是我们知道之前的rt是多少,然后进行优化,再把新的rt和之前的对比。如果新的rt比较小,那么就进行了一个成功的优化。这里于是出现了另一个关键点,怎么测量或者说度量服务器的性能,响应时间?我们一步步来,为了降低
分类: 其他 发布时间: 09-13 23:30 阅读次数: 0

mysql的schema和数据类型优化

前言:优秀的设计和逻辑是高性能的基本保障,我们来看下关于mysql使用schema和数据类型优化的一些建议和原则。1.选择优化的数据类型的常用规则更小的通常更好一般选择更小的数据类型能满足业务场景的需求,小的数据类型意味着更小的cpu开销,更小的内存,储存空间的使用,可以提高效率。简单的数据类型整型的数据类型比字符型,浮点型数据要来的简单,处理起来也更方便。尽量避免使用NULL如果不是必须要储存NULL值的话,一般情况下都要指定列为NOT NULL。可以为NULL的列会使用更多的空间,使用
分类: 其他 发布时间: 09-13 23:30 阅读次数: 0

mysql的event定时任务

导语:最近用到了mysql的event,就学习了一波,记录一下。mysql从5.7之后就增加了event的功能,类似于linux的crontab,就是定时任务,用来一次性或者周期性执行某些任务。event的主要特征和属性:1.在mysql中event的是根据它的名称和schema来唯一标识一个事件的。2.event中可以是由一句sql语句组成,也可以是由BEGIN-END的代码块组成。event可以执行一次或周期性执行,周期性执行可以设置有规律的开始时间和结束时间,也可以分别单独设置开始时间,结束
分类: 其他 发布时间: 09-13 23:30 阅读次数: 0

ESP32 开发笔记(三)源码示例 12_IR_Rev_RMT 使用RMT实现红外遥控接收解码(NEC编码)

开发板购买链接https://item.taobao.com/item.htm?spm=a2oq0.12575281.0.0.50111deb2Ij1As&ft=t&id=626366733674开发板简介开发环境搭建 windows源码示例: 0_Hello Bug (ESP_LOGX与printf) 工程模板/打印调试输出 1_LED LED亮灭控制 ...
分类: 其他 发布时间: 09-13 23:30 阅读次数: 0

机器狗搭建记录1-树莓派的初体验

导语用来做机器狗的树莓派3代Model B+到货了,首先给它装了下散热片,正面的cpu和南桥发热量还是很大的。安装散热片可以参考这个视频。讲解的非常详细,我这种小白也是一听就懂。视频讲解链接:散热片安装安装前:安装后:这个金黄的树莓标志就是cpu啦,是不是很酷!散热片装好之后,进入到树莓派系统的安装环节:树莓派的系统安装树莓派官网有推荐两种安装方式1.通过软件来协助安装系统优点:图像化操作界面,按照步骤操作简单易懂缺点:wifi模块不太好的话,下载系统贼慢(当然也可能是下在系统
分类: 其他 发布时间: 09-13 23:29 阅读次数: 0

机器狗搭建记录2-树莓派连接舵机

导语:上次咱们已经把树莓派系统搭建起来了,这次咱们在给树莓派的系统配置成需要的样子。树莓派环境搭建需要材料:1.树莓派(已经安装好系统) x12.直流电源 x13.PCA9685舵机控制器 x14.PDI-HV5523MG舵机 x11.更新系统软件sudo apt update -ysudo apt dist-upgrade -ysudo apt autoremove -y这里最好接入有线,直接插上网线的接口就可以直接连上了。无线贼慢,慢到怀疑人生每秒几k,不知道是树莓派的网卡还是哪
分类: 其他 发布时间: 09-13 23:29 阅读次数: 0

2.12训练日记

最近做题有点烦躁,一个是题目比较难了,大多都现靠研究题解弄明白的,没有了自己做的成就感,再就是CF一直在掉分,Div2要想得分至少得做出三个,可现在就两个题的水平,Div3手慢了掉的比Div’2还狠,眼看着分往下掉,菜到不行。今天做到一个题,大数的质数筛法,用的是先筛小数然后用小数筛大数,不是很难理解但愣是看了一下午,之前这些基础性的知识看博客的时候看过去一遍就没再去看,用的时候还得现看模板,现在...
分类: 其他 发布时间: 09-13 23:29 阅读次数: 0

UVA10689-Yet another Number Sequence(矩阵快速幂)

Let’s define another number sequence, given by the following function:f(0) = af(1) = bf(n) = f(n − 1) + f(n − 2), n > 1When a = 0 and b = 1, this sequence gives the Fibonacci Sequence. Changing...
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

2.17训练日记

过混了头了,昨天忘了总结了,罪过罪过。本来以为前天的CF打的还行,前两个题一遍过,第二个题一开始看错题了但好歹最后出来了,第三个没时间出了也没觉得亏,一般情况也出不来,可谁知道前天的c题这么简单,亏了亏了。。。这两天过的浑浑噩噩的,感觉刷题有困难了就去补课,可也没给自己定个计划,祸祸了好几天也没感觉学了点什么,还是回来刷题比较安心。...
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

UVA 10236 - The Fibonacci Primes(斐波那契素数)

The Fibonacci number sequence is 1, 1, 2, 3, 5, 8, 13 and so on. You can see that except the first twonumbers the others are summation of their previous two numbers. A Fibonacci Prime is a Fibonacci...
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

【北京迅为】i.MX6ULL终结者IO引脚配置

IO引脚的配置我们需要参考第32章节,在9.1章节我们看到每个IO都有一个“SW_MUX_CTL_PAD_XX_XX”的寄存器,例如SW_MUX_CTL_PAD_GPIO1_IO00。该寄存器在6.1章节我们介绍了,主要是用来配置IO引脚的模式。然后我们在该章节看到还有一个“SW_PAD_CTL_PAD_XX_XX”的寄存器,例如“SW_PAD_CTL_PAD_GPIO1_IO00”寄存器,如图 1所示:图 1从上图可以看到SW_PAD_CTL_PAD_GPIO1_IO00寄存器的地址是0X20E0
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

【北京迅为】i.MX6ULL终结者GPIO配置

在9.1和9.2章节我们介绍了这两个寄存器“SW_MUX_CTL_PAD_XX_XX”和“SW_PAD_CTL_PAD_XX_XX”用来配置IO引脚,在本章我们来学习一下GPIO功能的配置(GPIO属于IO引脚中的一种复用功能)。比如GPIO1_IO00这个IO可以复用为I2C2_SCL、ENET1_REF_CLK1、GPIO1_IO00、WDOG3_WDOG_B等9种复用功能,GPIO1_IO00只是其中的一种,具体配置成哪种复用功能,需要看下我们的硬件设计中这个IO是作为哪种功能来设计的。如果我们把该引
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

什么是好测试,坏测试!

事实上写出好的测试和写出好的生产代码一样难,需要精心练习和深思熟虑。然而我太多次看到测试代码被当作二等公民。这种情况往往意味着我们没有从测试中得到应有的益处,到头来测试集更像个累赘而非资产。好的测试集:一、信心当修改代码后,运行了测试就足以放心提交代码么?直接上线呢?我的经验是单元测试是不够的,我们需要一些全栈测试,BDD以及集成测试来增加信心。需要注意的是对于同一个功能点如果有两个测试给你信心,那么有一个测试是多余的。另外,如果你真的对测试集很有信心,但是你发布的产品中bug仍然持续增加,你的
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

【北京迅为】i.MX6ULL终结者GPIO时钟

如果使用GPIO,我们必须要使能GPIO的时钟。i.MX6 ULL的每个外设的时钟可以独立的使能,我们可以关闭不使用的外设时钟,可以达到节能的目的。如果使用某个外设,我们必须要打开对应的时钟。《I.MX6ULL参考手册》的第18章“Clock Controller Module (CCM)”是关于i.MX6ULL时钟的讲解,我们可以看下该章节里面外设时钟的使能寄存器。跟外设时钟使能相关的寄存器有:CCM_CCGR0CCM_CCGR1CCM_CCGR2CCM_CCGR3CCM_CCGR4CCM_C
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

自动化测试SQL查找是否“存在“,别再count了,很耗费时间的

根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老白,都是一如既往的count目前多数人的写法多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查询是否存在记录,不关心有多少条记录。普遍的SQL及代码写法如下  ##### SQL写法:   SELECT count(*) FROM table WHERE a = 1 AND b = 2   
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

【北京迅为】i.MX6ULL终结者LED原理分析

i.MX6ULL终结者开发板板载了一个LED灯,打开底板的原理图(光盘资料的“i.MX6UL终结者光盘资料\03_开发板硬件资料\01_开发板原理图\pdf\ itopmx6ul_terminator_v1_0.pdf”), 原理图如图 1所示: 图 1从上图可以看到LED2一段接到了3.3V电源,另一端接到了GPIO_3(CPU的GPIO1_IO03)引脚上,当GPIO1_IO03引脚输出低电平(0)的时候,LED2会被点亮,当GPIO1_IO03引脚输出高电平(1)的时候,LED2会灭掉。.
分类: 其他 发布时间: 09-13 23:28 阅读次数: 0

【北京迅为】i.MX6ULL终结者LED汇编程序

按照前面的介绍,我们需要对GPIO1_IO03做如下的设置:1.使能GPIO1的时钟GPIO1的时钟由CCM_CCGR1寄存器的bit27和26控制,我们把这两位设置成1,就会使能GPIO1的时钟了。2.配置GPIO1_IO03的复用功能IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03寄存器是GPIO1_IO03的复用寄存器,地址是0x20e0068,把这个寄存器设置成GPIO功能。3.配置GPIO1_IO03上下拉IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03
分类: 其他 发布时间: 09-13 23:27 阅读次数: 0