- 博客(143)
- 资源 (4)
- 收藏
- 关注
原创 24 | MySQL是怎么保证主备一致的?
以下内容出自《MySQL 实战 45 讲》 https://time.geekbang.org/column/article/76446。
2023-07-10 23:02:44
886
1
原创 21 | 为什么我只改一行的语句,锁这么多? MySQL 加锁规则和实战分析
可重复读隔离级别遵守两阶段锁协议,所有加锁的资源,都是在事务提交或者回滚的时候才释放的。在最后的案例中,知道 next-key lock 实际上是由间隙锁加行锁实现的。如果切换到读提交隔离级别 (read-committed) 的话,就只剩下行锁的部分。其实读提交隔离级别在外键场景下还是有间隙锁,在读提交隔离级别语句执行过程中加上的行锁,在语句执行完成后,就要把“不满足条件的行”上的行锁直接释放了,不需要等到事务提交。
2023-07-06 23:32:32
324
原创 18 | 为什么这些SQL语句逻辑相同,性能却差异巨大?
在这个例子里,放弃了树搜索功能,优化器可以选择遍历主键索引,也可以选择遍历索引 t_modified,优化器对比索引大小后发现,索引 t_modified 更小,遍历这个索引比遍历主键索引来得更快。交易编号 tradeid 这个字段上,本来就有索引,但是 explain 的结果却显示,这条语句需要走全表扫描。这是因为,tradeid 的字段类型是 varchar(32),而输入的参数却是整型,所以需要做类型转换。MySQL 中,字符串和数字做比较的话,是将字符串转换成数字。上面的语句实际上相当于。
2023-07-02 18:44:46
74
原创 16 | “order by”是怎么工作的?
MySQL 会给每个线程分配一块内存用于排序,称为 sort_buffer。排序时可能在内存中完成,也可能需要使用外部排序,这取决于排序所需的内存和参数 sort_buffer_size。sort_buffer_size,就是 MySQL 为排序开辟的内存(sort_buffer)的大小。如果要排序的数据量小于 sort_buffer_size,排序就在内存中完成。但如果排序数据量太大,内存放不下,则不得不利用磁盘临时文件辅助排序。
2023-07-02 18:20:13
82
原创 PHP 基础知识
目录PHP基础 2PHP代码标记 2PHP注释 2PHP语句分隔符 2PHP变量 3常量 3数据类型 4流程控制 6文件 7函数 9闭包 11常用系统函数 12错误处理 13错误显示设置 15字符串类型 17字符串相关函数 19数组 21遍历数组 22数组的相关函数 25PHP基础PHP是一种运行在服务器端的脚本语言,可以嵌入到HTML中。 PHP代码标记在PHP历史中,可以使用多种标记来区分P...
2023-06-26 23:30:00
3822
原创 02 | 日志系统:一条SQL更新语句是如何执行的?
write pos 是当前记录的位置,一边写一边后移,checkpoint 是当前要擦除的位置,也是往后推移并且循环的,擦除记录前要把记录更新到数据文件。特点:物理日志,大小固定,循环写入,当Mysql意外宕机后,记录好的 redo log 在 Mysql 重启后可根据 redo log 中的记录继续向磁盘中写入数据,这个能力被称之为:crash-safe。2、执行器拿到引擎给的行数据,把这个值加上 1,比如原来是 N,现在就是 N+1,得到新的一行数据,再调用引擎接口写入这行新数据。
2023-06-24 23:43:46
407
原创 Flink standalone 集群会话模式部署搭建
1、下载 flink-1.17.0-bin-scala_2.12.tgz 放到指定的目录下,然后解压。启动成功后,可以访问 http://hadoop:8081 对 flink 集群和任务进行监控管理。如果执行报错,bash: jps: command not found, 则需要在各个节点上执行。2、flink-1.17.0-bin-scala_2.12.tgz 安装包,节点服务器的 flink 的 bin 目录下,执行。1)进入解压的目录下的 conf 路径,修改。2、修改集群配置信息。
2023-06-02 23:28:20
873
原创 docker-compose 安装 es集群、kibana、cerebro、Logstash 导入测试数据
此集群为 3 节点,故创建 es01,es02,es03 三个文件夹,在每个文件夹下新建 data、conf、plugins 文件夹。在 es0x/conf 创建 elasticsearch.yml,添加如下内容。4、启动集群,在docker-compose文件所在目录下运行命令。3、编写 docker-compose.yml 文件。5、启动成功后,访问对应地址。注意 IP 修改成自己的。修改端口、挂载目录等。
2022-10-03 20:28:03
2485
2
原创 单例模式实现及防止反射与序列化
单例模式模式动机对于系统中的某些类来说,只有一个实例很重要,如一个系统中只有一个计时工具和 ID(序号)生成器。单例模式适用情况包括:系统只需要一个实例对象;客户调用类的单个实例只允许使用一个公共访问点。定义顾名思义,用来保证一个对象只能创建一个实例,除此之外,它还提供了对实例的全局访问方法。单例模式的要点有三个:一是类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。实现为了确保单例实例的唯一性,所有的 单例构造器都要被声明为私有 的,再通过声明 静态方法实
2022-07-19 22:36:06
932
原创 基于nmap 的简单主机、端口探测和基于curl的接口探测
程序下载程序说明程序功能主机探测(基于 nmap 命令)端口探测(基于 nmap 命令)API/URI 探测(基于 CURL 命令)使用示例主机探测nmap 对应命令:nmap -sn -PE ip/域名nmap 命令探测实现(Zen Nmap GUI 工具)程序探测实现public PingResult ping(String nmapPath, List<String> urls){ NmapUtil util = new NmapUtil(nmap
2022-05-18 21:00:19
587
原创 CentOS7 集群搭建
环境准备1、VMware Workstation 16 Pro2、CentOS-7-x86_64-DVD-2009.iso3、SSH 连接改工具 finashell一、安装 centosVMware安装CentOS7超详细版_Xiao J.的博客-CSDN博客_vmware安装centos7如果网络无法打开,则检查本机上的下面两个服务是否打开。二、配置 centos1、更换为国内源mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/
2022-04-05 11:46:49
6049
6
转载 单例模式实现以及防止反射与序列化
单例模式模式动机对于系统中的某些类来说,只有一个实例很重要,如一个系统中只有一个计时工具和 ID(序号)生成器。单例模式适用情况包括:系统只需要一个实例对象;客户调用类的单个实例只允许使用一个公共访问点。定义顾名思义,用来保证一个对象只能创建一个实例,除此之外,它还提供了对实例的全局访问方法。单例模式的要点有三个:一是类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。实现为了确保单例实例的唯一性,所有的 单例构造器都要被声明为私有 的,再通过声明 静态方法实
2022-03-15 07:21:11
577
原创 Java虚拟机
文章目录Java代码执行流程内存结构概述类加载子系统类的加载过程加载链接验证(Verify)准备(Prepare)解析(Resolve)初始化类加载器的分类启动类加载器(引导类加载器,Bootstrap ClassLoader)扩展类加载器(Extension ClassLoader)应用类程序加载器(系统类加载器,AppCLassLoader)用户自定义类加载器为什么要自定义类加载器用户自定义类加载器的实现步骤获取ClassLoader的途径双亲委派机制工作原理优势双亲委派模型破坏举例(4次)模块化下的类
2021-01-06 20:30:53
1736
2
原创 高性能MySQL概述
MySQL逻辑架构大多数MySQL核心功能都在第二层架构,包括查询解析、分析、优化、缓存以及所有的内置函数,所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。第三层包含了存储引擎。存储引擎负责MySQL中数据的存储与提取。但存储引擎不会去解析SQL(InnoDB是个例外,它会解析外键定义)。事务原子性(atomicity):一个事务必须被视为一个不可分割的最小工作单元。一致性(consistency):数据库总是从一个一致性状态转换到另外一个一致性的状态。隔离性(is
2020-12-27 23:01:28
1411
3
原创 简单工厂模式
简单工厂模式简单工厂模式(Simple Factory Pattern):又称为静态工厂方法(Static Factory Method)模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式适用情况包括:工厂类负责创建的对象比较少;客户端只知道传入工厂类的参数,对于如何创建对象不关心。简单工厂模式包含如下角色:Factory:工厂角色工厂角色负责实现创建所有实例的内部逻辑
2020-12-18 07:38:54
172
原创 单例模式的各种实现
单例模式模式动机对于系统中的某些类来说,只有一个实例很重要,如一个系统中只有一个计时工具和ID(序号)生成器。单例模式适用情况包括:系统只需要一个实例对象;客户调用类的单个实例只允许使用一个公共访问点。定义顾名思义,用来保证一个对象只能创建一个实例,除此之外,它还提供了对实例的全局访问方法。单例模式的要点有三个:一是某个类只能有一个实例;二是它必须自行创建这个实例;三是它必须自行向整个系统提供这个实例。实现为了确保单例实例的唯一性,所有的单例构造器都要被声明为私有的,在通过声明静态方法实现全
2020-12-18 07:33:42
192
原创 RestTemplate简单介绍
请求方法GETgetForEntitygetForObjectPOSTpsoForEntitypostForEntitypostForLocationPUTputDELETEdeleteGET请求第一种:getForEntity函数该方法返回的是ReponseEntity对象,改对象是spring对http请求响应的封装,其中主要存储了http的几个重要对象 。如请求状态的枚举对象HttpStatuis,在它的父类HttpEnt...
2020-11-03 07:43:36
381
原创 JS中var、let和const
var与let1、作用域不同let声明的变量只在其所在代码块内有效。var声明的变量在全局范围内有效。var a = [];for(var i =0; i <10; i++){ a[i] = function(){ console.log(i); }}a[6]();//10 i 全局有效 a数组的成员的i指向同一个ifor循环设置循环变量的那部分是一个父作用域,而循环内部是一个单独的子作用域for(let i = 0; i < 3; i++){ let
2020-11-03 07:30:36
330
原创 JS时间操作
获取当前日期时间以及其他操作var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位)myDate.getMonth(); //获取当前月份(0-11,0代表1月)myDate.getDate(); //获取当前日(1-31)myDate.getDay(); //获取当前星期X(0-6,0代表星期天)myDate.get
2020-10-12 21:18:33
164
原创 Summernote富文本编辑器的使用
查看的博客https://www.cnblogs.com/kenhome/p/7743394.htmlhttps://blog.csdn.net/wqlove520/article/details/96331111https://www.cnblogs.com/hzb462606/p/8987832.htmlhttps://www.cnblogs.com/cxchanpin/p/7323632.htmlhttps://blog.csdn.net/a11441555/article/details/
2020-07-24 22:10:10
704
1
原创 MyatisGenerator(Mysql 8)
链接:https://pan.baidu.com/s/1g_xAgzv_ROK59SRSxcGICA提取码:d247效果代码:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis
2020-07-23 21:16:44
317
PHP 核心编程技术 个人笔记
2023-06-26
PHP 核心编程技术 个人学习文档
2023-06-26
ESP8266wifi-master,RCSwitch,SCoop-master
2019-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人