<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[纪先生笔记]]></title><description><![CDATA[系列的方式分享Java相关技术]]></description><link>https://blog.youkuaiyun.com/GoldSunJG</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; GoldSunJG]]></copyright><item><title><![CDATA[MySQL进阶系列：你需要了解的几种MySQL日志]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/123059768</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/123059768</guid><author>GoldSunJG</author><pubDate>Mon, 21 Feb 2022 16:50:00 +0800</pubDate><description><![CDATA[MySQL中有多种日志来保证实现其各种功能，我们最常见或者常听说的是Binlog(二进制日志)，Redo Log(重做日志)，Undo Log(回滚日志)。其实还有Relay Log(中继日志) ，General Query Log(一般查询日志)，Slow Query Log(慢查询日志)，Error Log(错误日志)，DDL Log(DDL 日志)等。
二进...]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列：一条sql是怎么执行的]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122891818</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122891818</guid><author>GoldSunJG</author><pubDate>Fri, 11 Feb 2022 12:28:00 +0800</pubDate><description><![CDATA[本文是在存储引擎是InnoDB的前提下

mysql中的针对表的操作可以分为增删改查四种操作，也就是常说的crud大法，根据类型分为DML(增删改)和DQL(查)；今天就说下插入和查询的语句时如何在mysql中执行的。
不管是DML还是DQL都是要经过连接器，缓存，分析器，优化器，执行器调用存储引擎的API。在前四个阶段都是一样的流程，具体的可以参考 mysql基础架构篇，文章中有详细简介各个...]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列：多版本并发控制- MVCC]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122552262</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122552262</guid><author>GoldSunJG</author><pubDate>Mon, 17 Jan 2022 10:04:00 +0800</pubDate><description><![CDATA[mysql是目前互联网中用的最广泛的关系型数据库，InnoDB是mysql默认的存储引擎也是使用最多的存储引擎，能够满足大多数的业务需求，其中高并发的优点就是通过mvcc实现的。这篇文章就来介绍下mvcc是如何支持并发的。
多版本并发控制

MVCC 全称Multi-Version Concurrency Control，MVCC是一种通过增加版本冗余数据来实现并发控制的方法，一般在数据库管理系...]]></description><category></category></item><item><title><![CDATA[虚拟机系列：JVM 有哪些垃圾回收算法]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122423074</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122423074</guid><author>GoldSunJG</author><pubDate>Mon, 10 Jan 2022 15:07:00 +0800</pubDate><description><![CDATA[垃圾即是无用的东西，不仅无用的了，而且占用地方，不丢留着干嘛。jvm也想把自己的垃圾给丢掉，毕竟jvm的内存空间还是很贵的。]]></description><category></category></item><item><title><![CDATA[虚拟机系列：JVM 运行时堆内存如何分代]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122335739</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122335739</guid><author>GoldSunJG</author><pubDate>Wed, 05 Jan 2022 10:03:00 +0800</pubDate><description><![CDATA[对于大多数应用来说，Java堆(Java Heap)是Java虚拟机所管理的内在中最大的一块。Java堆是被所有线程共享的一块内在区域，在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例，几乎所有的对象实例都在这里分配内存。虚拟机规范中的描述是：所有类的实例与数组对象都要在堆中分配。但是随着JIT编译器的发展与逃逸分析技术的逐渐成熟，栈上分配，标量替换优化技术导致一些变化，所有对象并不都分...]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列：事务及事务隔离级别]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122164268</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122164268</guid><author>GoldSunJG</author><pubDate>Sun, 26 Dec 2021 17:06:00 +0800</pubDate><description><![CDATA[事务就是现实中抽象出来一种逻辑操作，要么都执行，要么都不执行，不能存在部分执行的情况]]></description><category></category></item><item><title><![CDATA[1. JVM运行时堆内存如何分代]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122094397</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122094397</guid><author>GoldSunJG</author><pubDate>Wed, 22 Dec 2021 20:36:05 +0800</pubDate><description><![CDATA[对于大多数应用来说，Java堆(Java Heap)是Java虚拟机所管理的内在中最大的一块。Java堆是被所有线程共享的一块内在区域，在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例，几乎所有的对象实例都在这里分配内存]]></description><category></category></item><item><title><![CDATA[巧用双索引避免es出现索引不存在的问题]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053991</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053991</guid><author>GoldSunJG</author><pubDate>Sun, 19 Dec 2021 11:03:00 +0800</pubDate><description><![CDATA[企业级门户APP，有移动端组织架构，员工可以在app端查询公司用户信息,支持员工在通讯录中多字段搜索(姓名/工号/手机号/邮箱/......)，模糊搜索。我们这边是使用elasticsearch来存储员工信息，
以便于实现这种搜索功能。




正常把员工信息导入到es中，搜索也不会有问题。但是我们的产品是个企业级产品，专门服务于不同的企业客户的，解决客户各式各样的需求。比如，正常...]]></description><category></category></item><item><title><![CDATA[公司短信接口被攻击了，怎么防止]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053990</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053990</guid><author>GoldSunJG</author><pubDate>Tue, 30 Nov 2021 10:54:00 +0800</pubDate><description><![CDATA[有了QQ，微信之后短信的作用对个人好像没有什么特别的用处，平时朋友间的沟通都是通过微信(也有QQ)，渐渐淡化了短信的用处。但是作为开发我们还是会接触短信平台的。
短信现在的用处：

网站和app的安全验证(注册，登陆,修改密码等)
广告推送骚扰
生日祝福(来自理财，保险，银行)
女朋友生气拉黑微信/电话之后的道歉途径
还有自信卖A货的(不知道你有没有收到过)
.......

目前阿里云，百度云...]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列：join连接的原理-3种算法]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053989</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053989</guid><author>GoldSunJG</author><pubDate>Mon, 22 Nov 2021 17:09:00 +0800</pubDate><description><![CDATA[“我们经常在多表查询的时候使用join 去连接多个表，其实join的效率比不好还是应该尽量避免使用的，其本质就是各个表之间循环匹配的，MySQL中只支持一种join算法Nested-Loop Join(循环嵌套连接)，但是其有多种变种的算法提高join的执行效率。”
1. Simple Nested-Loop Join(SNL，简单嵌套循环连接)
Simple Nested-Loop join...]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列: 怎么创建更合适的索引]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053988</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053988</guid><author>GoldSunJG</author><pubDate>Fri, 12 Nov 2021 16:26:00 +0800</pubDate><description><![CDATA[“不要当库里的数据较多的时候才能知道索引的重要性，更不要当库里的数据更多的时候才能知道合适的索引重要性。本文介绍下怎么创建高效且合适的索引”
1. 当使用索引列进行查询的时候尽量不要使用表达式，把计算放到业务层而不是数据库层
如下图 两个sql的结果是一样的，但是两个sql的执行计划是不一样，在type中index的效率远不如const where条件中 actor_id+4 表达式影响了执行...]]></description><category></category></item><item><title><![CDATA[你需要知道的一些索引基础知识]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053987</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053987</guid><author>GoldSunJG</author><pubDate>Mon, 25 Oct 2021 16:00:00 +0800</pubDate><description><![CDATA[“对于高级开发，我们经常要编写一些复杂的sql，那么防止写出低效sql，我们有必要了解一些索引的基础知识。通过这些基础知识我们可以写出更高效的sql。”
01 索引的优点

大大减少服务器需要扫描的数据量，也就是IO量
帮助服务器避免排序和临时表(尽量避免文件排序，而是使用索引排序)
将随机IO变成顺序IO

02 索引的用处

快速查找匹配where子句中的行
如果可以在多个索引中选择，my...]]></description><category></category></item><item><title><![CDATA[为什么mysql使用B+树作为索引的数据结构]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053985</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053985</guid><author>GoldSunJG</author><pubDate>Thu, 14 Oct 2021 17:26:00 +0800</pubDate><description><![CDATA[索引提高查询效率，就像我们看的书，想要直接翻到某一章，是不是不用一页一页的翻，只需要看下目录，根据目录找到其所在的页数即可。
在计算机中我们需要一种数据结构来存储这个目录，常见数据结构有哈希表，二叉查找树，二叉平衡树(AVL)，红黑树，那为什么Innodb和MyISAM选择b+树呢。
哈希表

哈希表就是一个数组+链表，用下标0，1，2，3..... 表示其数据所在的位置。如果想要在哈希表中存放...]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列：一文详解explain]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053984</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053984</guid><author>GoldSunJG</author><pubDate>Wed, 15 Sep 2021 13:59:00 +0800</pubDate><description><![CDATA[explain有何用处呢： 为了知道优化SQL语句的执行，需要查看SQL语句的具体执行过程，以加快SQL语句的执行效率。
​       可以使用explain+SQL语句来模拟优化器执行SQL查询语句，从而知道mysql是如何处理sql语句的。通过查看执行计划了解执行器是否按照我们想的那样处理SQL。
​	   官网地址： https://dev.mysql.com/doc/refman/5....]]></description><category></category></item><item><title><![CDATA[MySQL进阶系列：数据库设计中的范式究竟该如何使用]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053983</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053983</guid><author>GoldSunJG</author><pubDate>Mon, 16 Aug 2021 10:00:00 +0800</pubDate><description><![CDATA[“这篇文章主要为了说明规矩要遵守，但是也别这么死板，要知道因场景不同而变化。了解各自的优缺点，在不同业务中根据需求选择使用。”

我们在项目上进行数据库设计的时候要求遵守三范式，为什么会约束三范式呢：为了减少数据冗余。
回忆下是哪三范式：


所有属性具有原子性，列不可分割。
例如家庭地址(xx省xx市xx地址)，家庭地址作为字段就是非原子的，可以拆分成字段省份，城市，地址。



在第一范式...]]></description><category></category></item><item><title><![CDATA[mysql进阶系列：表设计如何更好的选择数据类型]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053982</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122053982</guid><author>GoldSunJG</author><pubDate>Mon, 26 Jul 2021 10:54:00 +0800</pubDate><description><![CDATA[日常工作中我们会接触到不同业务，同样也会设计不同的表，但是你有真正考虑的mysql支持的那些数据类型吗？知道如何根据不同的需求选择最合适或者正确的类型吗。
存储字符串类型只知道选择varchar , 是否知道字符串还有char, text, blob 。
存储数字类型只知道选择 int，float，double，是否知道还有tinyint，smallint 等。
看完这篇文章相信你在以后的表设计...]]></description><category></category></item><item><title><![CDATA[mysql进阶系列：mysql中MyISAM和InnoDB有什么区别]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054079</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054079</guid><author>GoldSunJG</author><pubDate>Tue, 20 Jul 2021 17:19:00 +0800</pubDate><description><![CDATA[mysql 版本5.7+
本片文章详细列举下MyISAM和InnoDB的区别
1. mysql中MyISAM和InnoDB有什么区别
1. 存储结构
MyISAM：每张表被存放在三个文件：frm-表格定义、MYD(MYData)-数据文件、MYI(MYIndex)-索引文件。
Innodb：所有的表都保存在同一个数据文件中(也可能是多个文件，或者是独立的表空间文件)，InnoDB表的大小只受限于...]]></description><category></category></item><item><title><![CDATA[mysql进阶系列：mysql的存储引擎有什么区别，该怎么选择]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054078</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054078</guid><author>GoldSunJG</author><pubDate>Mon, 12 Jul 2021 10:46:00 +0800</pubDate><description><![CDATA[本文mysql实验版本 : 5.7.21 

基础架构篇了解到执行器执行这个执行计划，通过调用存储引擎的API来操作数据。
mysql提供了一系列存储引擎的API，所有的存储引擎都要符合API要求，因此可以实现这种插件式的存储引擎，可以根据不同的需求选择合适的存储引擎(就像握推杠铃一样，可以按需选择不同大小的杠铃片，嗯对的)。
存储引擎是针对表的而不是库，对于同一个库不同的表可以使用不同的存储...]]></description><category></category></item><item><title><![CDATA[一文了解mysql基础架构]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054077</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054077</guid><author>GoldSunJG</author><pubDate>Mon, 05 Jul 2021 19:19:00 +0800</pubDate><description><![CDATA[如果能够清楚知道的架构图以及各个组件之间的关联，会有助于深入理解mysql，如下是其的架构图

图中可以看出mysql分为service层和存储引擎层：
service层包含了mysql大多数核心功能，除了图中标注的连接器，查询缓存，分析器，优化器，执行器，还有所有的内置函数(日期，时间，数学和加密函数)，所有跨存储引擎的功能都在这一层实现：存储过程、触发器、视图等。
存储引擎层负责mysql中...]]></description><category></category></item><item><title><![CDATA[性能监控-skywalking的了解和使用]]></title><link>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054076</link><guid>https://blog.youkuaiyun.com/GoldSunJG/article/details/122054076</guid><author>GoldSunJG</author><pubDate>Wed, 02 Jun 2021 15:18:00 +0800</pubDate><description><![CDATA[简单操作就可以使用，方便监控服务运行情况
一. 概述
基于Skywalking，提供分布式服务链路追踪，服务依赖拓扑绘制，慢端点、慢SQL等面板展示能力，以及服务告警能力，同时自带显示面板，可以提供前后端调用链整合能力。支持多种语言：如 Java, C# , Node.js , Go , PHP 以及 Nginx LUA。
SkyWalking 为 服务(service), 服务实例(servi...]]></description><category></category></item></channel></rss>