自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lbllol365的博客

热爱兵棋,热爱编程

  • 博客(58)
  • 资源 (2)
  • 收藏
  • 关注

原创 MySQL 45 讲 | 01 基础架构 一条SQL查询语句是如何执行的

01 基础架构 一条SQL查询语句是如何执行的MySQL逻辑架构图:MySQL分为Server层和存储引擎层。Server层:包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL大多数核心服务功能、内置函数、所有的跨存储引擎的功能,比如存储过程、触发器、视图等存储引擎层负责数据的存储和提取。架构是插件式的,支持多个存储引擎。不同的存储引擎共用一个Server层。连接器连接器负责跟客户端建立连接、获取权限、维持和管理连接。连接时,如果用户名密码认证通过,连接器会到权限表里查出你

2021-02-28 14:20:16 221 1

原创 RabbitMQ安装与避坑

我用的腾讯云,Ubuntu18.04.4 LTS。你先需要安装Erlang,然后在安装RabbitMQ。但首先,要注意:RabbitMQ和Erlang相互的版本是有限制的。具体看下面的链接:https://www.rabbitmq.com/which-erlang.html现在我要安装3.8.9的RabbitMQ,那么我就得按照要求去安装最低22.3,最高23.x版本的Erlang1.安装Erlang你可以用apt来装Erlang,但我推荐使用aptitude,它会为你处理安装和卸载时依赖包的问

2020-12-20 10:10:20 218 1

原创 高性能MySQL 笔记 第四章 Schema与数据类型优化

Schema与数据类型优化选择优化的数据类型几个简单的原则:更小的通常更好:应该尽量使用可以正确存储数据的最小数据类型简单就好:简单数据类型的操作通常需要更少的CPU周期尽量避免NULL整数类型有可选的UNSIGNED属性,表示不允许负值,这大致可以使正数的上限提高一倍有符号和无符号类型使用相同的存储空间,并具有相同的性能MySQL可以为整数类型指定宽度,但对于存储和计算来说,INT(1)和INT(20)是相同的实数类型FLOAT使用4字节,DOUBLE使用8字节,但MySQL使用

2020-11-12 18:53:16 182

原创 高性能MySQL 笔记 第三章 服务器性能剖析

服务器性能剖析性能优化简介数据库服务器的性能用查询的响应时间来度量,单位是每个查询花费的时间。优化:在一定的工作负载下尽可能地降低响应时间。注意:性能优化不是降低CPU利用率!资源就是用来消耗并用来工作的,如果消耗了更多的CPU,但缩短了响应时间,这种情况是有利的。完成一项任务需要的时间分为:执行时间和等待时间。要优化执行时间:定位和测量不同子任务花费的时间。然后优化去掉一些子任务、降低子任务的执行频率或者提升子任务的效率。一些运行不频繁或者很短的子任务对整体响应时间的影响很小,通常可以忽略不计

2020-10-26 15:21:46 114

原创 《深入浅出设计模式》 笔记第三章 装饰者模式

《深入浅出设计模式》 笔记第三章 装饰者模式有这么一个需求:咖啡厅做饮料。饮料分基础饮料(浓缩咖啡、普通咖啡等等)和调味饮料(果汁、豆浆等)。现要求建立一个系统,计算饮料的价格和饮料的描述,成品饮料会在基础饮料的上搭配调味饮料。第一次尝试很明显,这种实现很烂。第二次尝试该次尝试将调味饮料放在了超类的属性(布尔值)中,每加入一种调味饮料,就需要添加一个属性和Get、Set方法。但这种尝试违反了开放-关闭原则。开放-关闭原则设计原则:类应该对扩展开放,对修改关闭。在选择需要被扩展的代码部

2020-08-02 19:22:47 178

原创 《深入浅出设计模式》笔记第二章 观察者模式

《深入浅出设计模式》笔记第二章 观察者模式概况需要建立一个应用如下:WeatherData类:错误示范:public class WeatherData { public void measureementsChanged() { float temp = getTemperature(); float humidity = getHumidity(); float pressure = getPressure();

2020-07-30 21:49:29 167

原创 《深入浅出设计模式》笔记第一章 策略模式

《深入浅出设计模式》笔记第一章设计一个有各种各样鸭子的系统:第一版 继承类图:加入了一个需求,需要让鸭子飞,修改类图如下:但,并不是所有的鸭子都会飞,比如橡胶鸭子。并且,橡胶鸭子是“吱吱”叫的(假设),而不是一般鸭子的“呱呱”叫,这样,就需要重写父类的quack方法。利用接口如何?这个设计很不好。没有实现代码复用,对于每个实现两个接口的类,都需要实现对应接口的方法,万一需要更改方法的实现会非常麻烦。软件开发的一个不变的真理就是变化。不管当初软件设计得多好,一段时间后,总是需要成长与改变

2020-07-27 22:43:22 221

原创 《高性能MySQL》 笔记 第一章 MySQL架构与历史

高性能MySQL 笔记 第一章 MySQL架构与历史MySQL逻辑架构最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务端的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等第二层是MySQL的核心服务功能,包括查询解析、分析、优化、缓存以及所有内置函数(日期、时间、数学等等),所有跨存储引擎的功能都在这一层实现:储存过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信,这些接口屏蔽了不同存储引擎之间的差异

2020-07-12 22:50:56 142

原创 微服务设计 第二章 笔记

第二章 演化式架构师不准确的比较架构师的一个重要职责:确保团队有共同的技术愿景,以帮助我们向客户交付他们想要的系统。**软件架构师和建筑师是天壤之别的!不要用建筑师的视角来看待软件开发。**建筑行业存在种种精确的约束,成果是一个“死”东西;而软件开发创造的东西从设计上来说就是要足够灵活,有很好的适应性,并且能根据用户的需求进行演化。架构师的演化视角架构师必须改变那种从一开始就要设计出完美产品的想法,相反我们应该设计出一个合理的框架,在这个框架下可以慢慢演化出正确的系统,并且一旦我们学到了更多的知识

2020-06-30 18:03:37 169

原创 微服务设计 第一章 笔记

第一章 微服务什么是微服务很小,专注于做好一件事单一职责原则:把因相同原因而变化的东西聚合到一起,而把因不同原因而变化的东西分离开来。怎样确定代码库足够小?如果你不再感觉你的代码库过大,可能它就足够小了。代码库的大小要与团队的大小相匹配自治性一个微服务就是一个独立的实体。它可以独立地部署在PaaS(Platform as a Service,平台即服务)上,也可以作为一个操作系统的进程存在。要尽量避免把多个服务部署到同一台机器上。特性:服务之间均通过网络调用进行通信,从而加强了服

2020-06-29 18:28:23 205

原创 Memcached介绍与使用

Memcached介绍与使用Memcached是什么?Memcached是一个免费开源的、高性能的、分布式内存对象缓存系统。Memcached是一个基于内存的键值对储存系统,用于储存小型的任意数据(字符串、对象),比如数据库查询、API调用以及页面渲染的结果。它由什么组成的?客户端软件,给出可用的Memcached服务器列表一个基于客户端的哈希算法,用于基于“键”选择合适的服务器服务端软件,在一个内部的哈希表中储存键值对数据最近最少使用算法(LRU),决定何时丢弃旧数据(当内存不足)各

2020-06-23 17:37:08 222

原创 《现代操作系统》笔记 第二章(1) 进程

第二章(1) 进程进程严格来说,在某个瞬间,CPU只能运行一个进程。但在1秒钟之内,它可能运行多个进程,这样就产生并行的错觉,伪并行就是指这种场景,以此来区分多处理器系统(该系统有两个或多个CPU共享一个物理内存)的真正硬件并行。进程模型关键思想:一个进程是某种类型的活动,它有程序、输入、输出以及状态。单个处理器可以被若干进程共享,它使用某种调度算法决定何时停止一个进程的工作,并转而为另一个进程服务。如果一个程序运行了两遍,则算两个进程。进程的创建有4种主要事件会导致进程的创建:系统初始化

2020-06-12 09:10:25 171

原创 《现代操作系统》笔记第一章 引论

第一章 引论多数计算机有两种运行模式:内核态和用户态操作系统运行在内核态(又称管态、和心态)中,用于对所有硬件的完全访问权,能使用硬件可以运行的任何机器指令。其它软件运行在用户态,只能使用机器指令中的一个子集,特别禁止运行那些会影响机器的控制或者I/O操作的指令。但在嵌入式系统(没有内核态)和解释系统(基于Java的操作系统,它采用解释方式而非硬件方式区分组件),上述区别是模糊的。在许多系统中,一些在用户态上运行的程序协助操作系统运行特权功能,比如修改密码的程序,它不是操作系统的一部分,也不在内核

2020-06-06 10:48:24 218

原创 Mybatis中getMapper方法源码解析

Mybatis中getMapper方法源码解析前言:最近重看了一遍Mybatis,看到“UserDao userDao = sqlSession.getMapper(UserDao.class);”这行代码。我很好奇,为什么传一个Class类型,就能返回一个可以用的接口呢?总体的红框的代码,会产生一个SqlSessionFactory,这个SqlSessionFactory携带着一个由Mybatis配置文件生解析而成的配置类(Configuration.java),这个配置类里就包含着已注册Mapp

2020-05-11 21:58:21 2610 1

原创 DispatcherServlet处理过程及源码分析

DispatcherServlet处理过程及源码分析第一步寻找WebApplicationContext并将其作为一个属性绑定到请求上,这样Controller和其他元素在处理过程中就可以使用它。默认它是绑定在DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE这个键上。DispatcherServlet这个类里最重要的两个方法是doSer...

2020-04-19 19:04:13 229

原创 《WireShark网络分析的艺术》笔记

《WireShark网络分析的艺术》笔记一个问题某些iSCSI存储阵列在出现网络拥塞时处理不当,会严重影响VMware的读写性能。这和它们的TCP实现方式有关。解决方式:在VMware和存储阵列上关闭延迟确认(Delayed ACK)介绍iSCSI:第17章 使用iSCSI服务部署网络存储。简言之,这是一种将SCSI(Small Computer System Interface)和以...

2020-04-17 18:02:21 738

原创 DispatcherServlet配置及源码分析

DispatcherServlet配置及源码分析DispatcherServlet是前端控制器,它负责拦截特定类型得请求并分发至对应的Controller。DispatcherServlet和其它Servlet一样,需要在Java配置类或者web.xml里进行声明和配置映射。反过来,DispatcherServlet也利用Spring配置来寻找组件、视图解析或者异常处理等。配置Dispatc...

2020-04-03 20:52:01 294

原创 代理模式及Spring AOP

代理模式及Spring AOP代理模式:为其他对象提供一种代理以控制对这个对象的访问。Subject:定义RealSubject和Proxy 的共用接口RealSubject:定义Proxy所代理的实体Proxy:保存一个指向真实实体的引用,并提供和真实实体相同的接口Java实现: package com.lbl.pojo; public interface ...

2020-03-29 22:57:40 91

原创 Spring使用注解开发

Spring使用注解开发注意:在Spring4之后,使用注解开发,必须先导入AOP的包需要在配置文件中导入context的约束,并增加对注解的支持(两处)指定位置进行组件扫描,只有扫描到的包中的注解才会生效: <context:component-scan base-package="com.lbl"/>@Component相当于注册一个Bean@Value...

2020-03-29 22:51:51 75

原创 Bean的自动装配

Bean的自动装配ByName自动在容器上下文中查找和对象Set方法名中的属性名相同的Bean id使用注意:Bean id需唯一需要无参构造器需要注入属性的Set方法Bean的id值要与Set方法名中的属性名相同Bean的id值必须全部为小写例子:假设有一个人,有一条狗和一只猫。 package com.lbl.pojo; public clas...

2020-03-27 19:34:36 74

原创 依赖注入的方法

依赖注入的方法通过构造器注入官方文档:Core Technologies通过有参构造器注入。使用:假设有一个人,有一条狗和一只猫,狗有名字和年龄。 package com.lbl.pojo; public class User { private Cat cat; private Dog dog; pu...

2020-03-26 20:58:41 82

原创 控制反转(IOC)原理推导

LOC原理推导以前的Web开发开发者常常会写:DAO层接口,DAO层实现类;Service层接口,Service层实现类。比如有这样四个文件: //DAO层接口 package main.java.dao; public interface UserDao { void getUser(); } //DAO层实现类 ...

2020-03-24 22:29:59 210

原创 深入浅出MySQL 第八章 选择合适的数据类 笔记

第八章 选择合适的数据类型CHAR与VARCHARCHAR:固定长度,处理速度快浪费空间需要对行尾空格进行处理应用场景:长度变化不大并且对查询速度有较高要求的数据不同引擎下的选择MyISAM 存储引擎:建议使用CHARMEMORY 存储引擎:皆可。两者都是作为 CHAR 类型处理InnoDB 存储引擎:建议使用 VARCHARTEXT与BLOB注意:在执行了大量的删...

2020-03-24 10:06:47 102

原创 深入浅出MySQL 第七章 表类型(存储引擎)的选择 笔记

第七章 表类型(存储引擎)的选择MySQL支持的储存引擎MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED 等,其中 InnoDB 和 BDB 提供事务安全表,其他存储引擎都是非事务安全表。修改表的储存引擎在创建新表的时候,可以通过增加 ENGINE 关键字设置新建表的存储...

2020-03-23 17:15:38 122

原创 深入浅出MySQL 第三章 MySQL支持的数据类型 笔记

第三章 MySQL支持的数据类型浮点数如果不写精度和标度,则会按照实际精度值显示,如果有精度和标度,则会自动将四舍五入后的结果插入,系统不会报错;定点数如果不写精度和标度,则按照默认值 decimal(10,0)来进行操作,并且如果数据超越了精度和标度值,系统则会报错。对于 BIT(位)类型,用于存放位字段值,BIT(M)可以用来存放多位二进制数,M 范围从 1~64,如果不写则默认为 1 位...

2020-03-20 14:55:16 86

原创 深入浅出MySQL 第二章 SQL基础 笔记

第二章 SQL基础SQL分类DDL:数据定义语言。定义不同的数据段、数据库、表、列、索引等数据库对象的定义。常用的create、drop、alter等DML:数据操纵语句。用于添加、删除、更新和查询数据库记录,并检查数据的完整性。常用的insert、delete、update和select等DCL:数据控制语句。用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段...

2020-03-20 11:46:43 96

原创 第三章 垃圾收集器与内存分配策略

第三章 垃圾收集器与内存分配策略3.1 概述垃圾回收器需要完成的三件事:哪些内存需要回收什么时候回收怎么回收虚拟机栈、程序计数器、本地方法栈不需要垃圾回收;Java堆和方法区需要。3.2 判断对象是否存活3.2.1 引用计数算法概述:每有一个引用,引用数就加1;每消失一个引用,引用数就减1;引用数到0了,就是要回收的对象。缺点:无法解决循环引用问题 。如obja = obj...

2020-02-28 15:37:52 92

原创 后端学前端:Vue学习总结(二)

后端学前端:Vue学习总结(二)Tags: Vue四、双向绑定指令:v-model作用:用在,和上,实现双向绑定官网:表单输入绑定 - Vue.js注意:v-model 会忽略所有表单元素的 value、checked、selected。 attribute 的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。...

2020-02-25 15:25:03 201

原创 后端学前端:Vue学习总结(一)

后端学前端:Vue学习总结(一)Tags: Vue一、前言MVVMMVVM(Model-View-ViewModel) 是一种软件架构设计模式,是一种事件驱动编程方式。MVVM来源于经典的MVC模式,其中心在VM(ViewModel)层,作用有二:与View层进行双向数据绑定;与Model层通过接口进行数据交互。何为双向绑定?单向绑定非常容易理解,就是把Model层绑定到View层。...

2020-02-24 10:58:04 421

原创 第二章 Java内存区域与内存区域异常

第二章 Java内存区域与内存区域异常2.2 运行时数据区域有方法区、堆、虚拟机栈、程序计数器、本地方法区栈。2.2.1 程序计数器(PC)控制流指示器线程私有唯一一个没有OutOfMemoryError情况的区域如果线程正在执行一个Java方法,PC会记录正在执行的虚拟机字节码指令的地址。如果执行一个本地方法(Native),PC的值为空。2.2.2 Java虚拟机栈线...

2020-02-13 12:54:19 69

原创 关于人工智能一点感想

一点感想2020/01/05和信息院的老师探讨几个问题,其中我提出这么个观点:人工神经网络的预测,本质上来说是不是也是一种分类,只是有结果是连续还是离散的区别?老师肯定了我的观点,还说,人工智能神经网络做到现在这时候,已经几乎全是分类问题了……人类始终想寻找一种手段,企图预测未来,这是人类的天性。但不幸的是,神经网络做不到预测未来,它只会在有限的解空间里进行搜索、分类,只是这解空间看起来很大...

2020-01-05 17:39:08 235

原创 今天遇到的两个小问题

#今天遇到的两个小问题2020/01/041.打开PyCharm 报cannot determine module type (“PYTHON_MODULE”) for the following module解决方法:删除目录下的.idea文件夹,并重启PyCharm。JB全家桶的软件应该都适用这个方案。2.Anacon Prompt 切换不了盘符解决方法:这玩意只能在根目录下切换盘...

2020-01-04 17:35:33 379

原创 Django开发遇到的几个坑儿

Django开发遇到的几个坑儿1. django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None解决方法:观察错误信息,找到报错文件: Lib\site-packages\django\db\backends\mysql\base.py找到如下...

2019-11-21 22:28:20 276

原创 《Redis设计与实现》读书笔记一

《Redis设计与实现》读书笔记一Redis是什么Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 ——百度百科Redis的常见应用场景1.做缓存Redis读写性能优异,且支持事务,在使用时能保证数据的一致性。2.应对海量数据...

2019-09-29 17:36:51 71

原创 MyBatis简单使用教程

MyBatis简单使用教程一、MyBatis简介Mybatis是当前主流的Java持久层框架之一,是一种ORM(Object/Relational Mapping,即对象关系映射)框架,支持普通SQL查询、储存过程以及高级映射。它使用简单的XML或者注解进行配置和原始映射,用以将接口和Java的POJO(Plain Old Java Object,普通Java对象)映射成数据库中的记录,使得J...

2019-08-17 17:44:15 246

原创 《冒号课堂:编程范式与OOP思想》笔记二

《冒号课堂:编程范式与OOP思想》笔记二第三课 常用范式超级范式,元编程泛型编程:Generic Programming,GPGP基本思想:将算法与其作用的数据结构分离,并将后者尽可能泛化,最大限度地实现算法重用。以算法为起点和中心点。函子:在范畴论中,函子是范畴间的一类映射。函子也可以解释为小范畴范畴内的态射。STL有三要素:算法、容器和迭代器。算法使一系列切实有效的步骤;容器是数...

2019-08-10 16:03:33 222

原创 《冒号课堂:编程范式与OOP思想》笔记一

《冒号课堂:编程范式与OOP思想》笔记首先,要有批判精神和独立思考的能力。第一课学会不如会学,会学不如会用,会用不如被用学会:知其所然会学:知所以然会用:人为我用(能将所学灵活运用到实际编程设计中)被用:我为人用(能设计出广为人用的应用程序)IT行业不同于纯数学,IT最高造诣是活学活用、广为人用。如果知识是水,我们要挖掘最先涌动的泉眼;如果知识是火,我们要捕捉起初点燃的...

2019-07-31 12:48:44 289

原创 Java Web 学习过程遇到的问题

Java Web 学习过程遇到的问题The server time zone value is unrecognized or represents more than one time zone.问题重现:使用JDBC连接MySQL数据库时,报错“The server time zone value is unrecognized or represents more than one t...

2019-07-25 09:42:25 191

原创 《万万没想到:用理工科思维理解世界》读书笔记

《万万没想到:用理工科思维理解世界》读书笔记斯大林?说:杀死一个人是悲剧,杀死一万个人是统计数字。英国人类学家邓巴估计,我们至今能够维持紧密人际关系的人数上限,只有150个。帕累托改进:在没有使任何人境况变坏的前提下使得至少一个人变得更好。现实生活中很少有这种事情TradeOff:取舍请问在以下死亡方式中,哪种是最值得担心的?在海滩游泳被鲨鱼攻击,恐怖袭击,还是被闪电击中?.........

2019-06-02 21:24:25 462

原创 《信息可视化:交互设计》读书笔记

《信息可视化:交互设计》读书笔记第一章 什么是可视化可视化:对某事建立心理模型或心理图像除了图形外,声音和其他感知形式都可以用作数据描述。我们经常听到的信息过载从本质上来讲应该叫做数据过载:信息过载也许只是一种期待中的奢侈。思考:信息是从数据中提取的有价值的东西。“数据挖掘”:信息可视化的基本思想:解决一个问题意味着用某种方法对其进行描述,从而使解决方案透明化。对人类用户要注意1....

2019-05-25 11:38:35 3261

智联招聘爬虫

一个智联招聘的爬虫,可以直接运行(需要相应库),使用selenium进行数据抓取,并将数据分类保存至Excel

2018-08-11

受限玻尔兹曼机的英文详细介绍(论文)

详细介绍了受限玻尔兹曼机的原理,需要有一定的英文和数学功底。

2018-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除