<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Forlogenの解忧杂货铺]]></title><description><![CDATA[不奢望对他人有多大帮助，只希望可以在大家心中埋下一颗学习和分享的种子]]></description><link>https://blog.youkuaiyun.com/Forlogen</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Forlogen]]></copyright><item><title><![CDATA[GaussDB数据库管理]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122499062</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122499062</guid><author>Forlogen</author><pubDate>Fri, 14 Jan 2022 17:39:58 +0800</pubDate><description><![CDATA[1、概述
数据库管理主要指对于数据库管理系统进行管理和维护的工作，目标是保障数据库的稳定性、安全性、数据一致性和高性能。管理的范围为如下几类：


对象管理：对象的设计和实现工作
安全管理：数据的安全访问和避免数据泄漏
备份恢复管理：数据定期备份和灾难发生时的及时恢复
性能管理：监控并优化影响数据库性能的相关因素，增加系统的吞吐量，尽可能的提高工作负载
环境管理：数据库的运行和维护



2、对象管理
数据库对象指数据库里用来存储和指向数据的各种概念和结构，常见的对象有表（table）、视图（view）、索]]></description><category></category></item><item><title><![CDATA[什么是分布式数据库？]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122480882</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122480882</guid><author>Forlogen</author><pubDate>Thu, 13 Jan 2022 19:44:39 +0800</pubDate><description><![CDATA[1. 数据库架构设计
数据库常用的架构设计模型有三种：



shared-Everything：一般针对于单机而言，完全透明的共享 CPU、内存和IO等资源，并行能力差
shared-Disk：每个单元的CPU和内存是独立的，共享磁盘系统，典型产品有Oracle RAC，它是数据共享，可以通过增加节点来提高并行处理能力，扩展能力较好。当存储器接口达到饱和时，增加节点并不能获得更高的性能
shared-Nothing：每个处理单元所拥有的资源都是独立的，单元之间通过协议通信，并行处理和扩展能力更好。各个节点]]></description><category></category></item><item><title><![CDATA[GaussDB中analyze关键字]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122447209</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122447209</guid><author>Forlogen</author><pubDate>Wed, 12 Jan 2022 10:06:09 +0800</pubDate><description><![CDATA[1、功能描述
用于收集与数据库中普通表内容相关的统计信息，统计结果存储在系统表PG_STATISTIC下。执行计划生成器会使用这些统计数据，以确定最有效的执行计划。


如果没有指定参数，analyze会分析当前数据库中的每个表和分区表
同时也可以通过指定table_name、column和partition_name参数把分析限定在特定的表、列或分区表中


能够执行analyze特定表的用户，包括表的所有者、表所在数据库的所有者或通过GRANT被授予该表上analyze权限的用户以及有SYSADMIN属]]></description><category></category></item><item><title><![CDATA[GaussDB灾备方案的设计]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122403114</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122403114</guid><author>Forlogen</author><pubDate>Mon, 10 Jan 2022 08:34:27 +0800</pubDate><description><![CDATA[文章目录1. 主数据中心/灾备数据中心2. 双运营数据中心3. 双活数据中心4. GaussDB同城双集群高可用方案5. 跨AZ容灾方案6. 参考
1. 主数据中心/灾备数据中心
在这种工作模式下，用户所有的业务系统在主数据中心中运行，而灾备数据中心为业务系统提供冷备或热备。当主数据中心的应用出现故障时，可以将单个应用或者数据中心整体切换到灾备数据中心。

2. 双运营数据中心
在这种工作模式下，一部分应用在第一个数据中心运行，另一部分应用在第二个数据中心运行，同时两个数据中心实现应用的互备，当某个应用出现]]></description><category></category></item><item><title><![CDATA[GaussDB(DWS)介绍]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122336008</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122336008</guid><author>Forlogen</author><pubDate>Thu, 06 Jan 2022 08:52:19 +0800</pubDate><description><![CDATA[数据仓库服务（Data Warehouse Service，GaussDB（DWS））是一种基于公有云基础架构和平台的在线数据处理数据库，提供即开即用、可扩展且完全托管的分析型数据库服务。

1. 简介
GaussDB（DWS）是基于华为融合数据仓库GaussDB产品的云原生服务，兼容标准ANSI SQL 99和SQL 2003，同时兼容PsotgreSQL/Oracle数据库生态，为各行各业提供PB级大数据分析解决方案。

其中：

● DWS：基于MPP架构的数据库，提供PB级数据负载能力、百TB级数.]]></description><category></category></item><item><title><![CDATA[数据库分区优化]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122323815</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122323815</guid><author>Forlogen</author><pubDate>Wed, 05 Jan 2022 14:58:12 +0800</pubDate><description><![CDATA[1. 分区介绍
​
分区功能并不是存储引擎层完成的，因此并不只有常用的InnoDB存储引擎支持分区，其中MyISAM、NDB等都支持，但也并不是所有的存储引擎都支持分区。
分区的过程是将一个表或索引分解为多个更小、更可管理的部分。MySQL数据库仅支持水平分区。可以通过以下命令查看当前数据库是否启用了分区功能：
​
mysql&gt;SHOW PLUGINS;
*********
Name:partition
Status:ACTIVE
Type:STORAGE ENGINE
Library:Null
Li]]></description><category></category></item><item><title><![CDATA[数据库架构的演变]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/122323360</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/122323360</guid><author>Forlogen</author><pubDate>Wed, 05 Jan 2022 14:51:47 +0800</pubDate><description><![CDATA[1. 概述
关系型数据库发展历程中，经历了如下几种架构的变化：


2. 单机架构

包括应用服务和数据库放在同一台服务器，以及将应用服务和数据库服务分开部署两种方式，后一种方式可以通过增加服务器数量来进行负载均衡，增加系统的并发能力。
优点：

● 集中部署
● 便于运维

缺点：

● 可扩展性差：单机性能的提升存在瓶颈
● 存在单点故障：扩容时需要停机，硬件故障会导致整个服务不可用，甚至数据丢失


3. 主备架构

数据库部署到两台服务器上，主机承担数据读写服务，备机利用数据同步机制进行数据同步，保]]></description><category></category></item><item><title><![CDATA[三月了，该加油了！]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/114250580</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/114250580</guid><author>Forlogen</author><pubDate>Mon, 01 Mar 2021 08:58:36 +0800</pubDate><description><![CDATA[如题


]]></description><category></category></item><item><title><![CDATA[242 - 有效的字母异位词]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109922070</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109922070</guid><author>Forlogen</author><pubDate>Sun, 22 Nov 2020 10:23:40 +0800</pubDate><description><![CDATA[给定两个字符串 s 和 t，编写一个函数来判断t是否是s的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true

示例 2:
输入: s = "rat", t = "car"
输出: false


说明：你可以假设字符串只包含小写字母。
进阶：如果输入字符串包含 unicode 字符怎么办？你能否调整你的解法来应对这种情况？


简单题就使用简单的方法来解，题目要求判断两个字符串s和t是否是字母异位词，即两个字符串中是否包含相同的字母，只是位置顺序.]]></description><category></category></item><item><title><![CDATA[148 - 快慢指针➕归并解决排序列表问题]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109900618</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109900618</guid><author>Forlogen</author><pubDate>Sat, 21 Nov 2020 16:14:53 +0800</pubDate><description><![CDATA[排序列表

给你链表的头结点 head ，请将其按 升序 排列并返回 排序后的链表 。

进阶：你可以在O(nlog⁡n)O(n\log n)O(nlogn)时间复杂度和常数级空间复杂度下，对链表进行排序吗？

示例 1：

输入：head = [4,2,1,3]
输出：[1,2,3,4]

示例 2：

输入：head = [-1,5,3,4,0]
输出：[-1,0,3,4,5]

示例 3：
输入：head = []
输出：[]


提示：

链表中节点的数目在范围 [0, 5 * 104] 内
-10]]></description><category></category></item><item><title><![CDATA[391 - 完美矩形问题]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109827717</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109827717</guid><author>Forlogen</author><pubDate>Thu, 19 Nov 2020 22:15:46 +0800</pubDate><description><![CDATA[完美矩形问题

我们有 N 个与坐标轴对齐的矩形, 其中N &gt; 0, 判断它们是否能精确地覆盖一个矩形区域。每个矩形用左下角的点和右上角的点的坐标来表示。例如， 一个单位正方形可以表示为[1,1,2,2]。 ( 左下角的点的坐标为 (1, 1)以及右上角的点的坐标为(2, 2) )。

示例 1:
rectangles = [
[1,1,3,3],
[3,1,4,2],
[3,2,4,4],
[1,3,2,4],
[2,3,3,4]
]
返回 true。5个矩形一起可以精确地覆盖一个矩形区域。


示]]></description><category></category></item><item><title><![CDATA[不同的路径问题Ⅰ Ⅱ Ⅲ]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109643712</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109643712</guid><author>Forlogen</author><pubDate>Thu, 12 Nov 2020 14:52:15 +0800</pubDate><description><![CDATA[文章目录不同路径Ⅰ不同路径 II不同的路径Ⅲ

62 不同路径  	
63 不同路径 II
980 不同路径 III

不同路径Ⅰ
一个机器人位于一个 m x n 网格的左上角 （起始点在下图中标记为“Start” ）。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角（在下图中标记为“Finish”）。问总共有多少条不同的路径？
例如，下图是一个7 x 3 的网格。有多少可能的路径？

示例 1:
输入: m = 3, n = 2
输出: 3
解释:
从左上角开始，总共有 3 条路径可以到达右]]></description><category></category></item><item><title><![CDATA[从时空复杂度出发，逐步优化接雨水问题]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109615158</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109615158</guid><author>Forlogen</author><pubDate>Wed, 11 Nov 2020 11:55:47 +0800</pubDate><description><![CDATA[接雨水问题

题目描述
给定 n 个非负整数表示每个宽度为 1 的柱子的高度图，计算按此排列的柱子，下雨之后能接多少雨水。
示例 1：

输入：height = [0,1,0,2,1,0,1,3,2,1,2,1]
输出：6
解释：上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图，在这种情况下，可以接 6 个单位的雨水（蓝色部分表示雨水）。

示例 2：
输入：height = [4,2,0,3,2,5]
输出：9


提示：

n == height.length
0 &lt;]]></description><category></category></item><item><title><![CDATA[Top-k问题的解法]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109589182</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109589182</guid><author>Forlogen</author><pubDate>Mon, 09 Nov 2020 23:37:41 +0800</pubDate><description><![CDATA[文章目录问题描述最小的k个数1. 暴力排序法2. 大根堆、小根堆3. 快速选择最接近原点的 K 个点

问题描述
所谓Top-K问题，指的是返回给定数据结构中最大/最小的K个元素，可能是本身的元素，也可能是运算结果中的元素。下面通过一简单的????来进行说明，如果解决这类问题。

最小的k个数
输入整数数组 arr ，找出其中最小的 k 个数。例如，输入4、5、1、6、2、7、3、8这8个数字，则最小的4个数字是1、2、3、4。
示例 1：
输入：arr = [3,2,1], k = 2
输出：[1,2] ]]></description><category></category></item><item><title><![CDATA[逐行理解Spring  AOP源码]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109545982</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109545982</guid><author>Forlogen</author><pubDate>Sat, 07 Nov 2020 13:54:19 +0800</pubDate><description><![CDATA[文章目录开启AOP自动代理及触发时机获取Bean匹配的Advisors链总结解析Aspect实现Advice织入JDK动态代理Cglib动态代理参考


本文主要是对于他人文章的整理，最后给出了参考链接。具体内容根据本人的理解，有所取舍。后续对于AOP有更深入的理解，再不断进行更新


AOP依赖于ioc容器进行管理。



开启AOP自动代理及触发时机
如果让Spring支持注解模式的AOP，那么需要在启动类上添加@EnableAspectJAutoProxy注解，它的作用是让ioc容器中所有的advis]]></description><category></category></item><item><title><![CDATA[彻底理解数据库中的内连接、外连接等各种类型连接的实现]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109435784</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109435784</guid><author>Forlogen</author><pubDate>Sun, 01 Nov 2020 20:20:12 +0800</pubDate><description><![CDATA[数据库左连接、右连接、内连接、全连接

数据库中各种连接方式的效果示意图如下所示：


Visual Representation of SQL Joins


下面通过案例来理解一下各种连接的使用场景。为了直观的观察上述不同连接操作的结果，首先准备两张表：
-- sql_test.a definition

CREATE TABLE `a` (
  `id` int NOT NULL AUTO_INCREMENT,
  `value` varchar(100) NOT NULL,
  PRIMARY KE]]></description><category></category></item><item><title><![CDATA[从BIO、NIO到Linux下的IO多路复用]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109403084</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109403084</guid><author>Forlogen</author><pubDate>Sat, 31 Oct 2020 15:21:33 +0800</pubDate><description><![CDATA[文章目录一、传统BIO、NIO对比1.1 传统BIO模型分析1.2 NIO是怎么工作的1.2.1 结合事件模型使用NIO同步非阻塞特性1.3. 小结：两者的主要区别1.3.1 面向流与面向缓冲1.3.2 阻塞与非阻塞IO二、NIO的核心部分2.1 Channel2.2 Buffer2.3 Selectors2.4 Proactor与Reactor2.5 NIO存在的问题2.6 适用范围三、Linux系统IO多路复用 select、poll与epoll3.1 前言：系统层面概念说明3.1.1 用户空间与内核空]]></description><category></category></item><item><title><![CDATA[Redis事务的实现原理]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109313006</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109313006</guid><author>Forlogen</author><pubDate>Tue, 27 Oct 2020 16:01:12 +0800</pubDate><description><![CDATA[Redis事务的实现原理

Redis作为一个数据库使用时，它本身也提供了事务机制的支持。事务执行期间，Redis服务器不会去中断事务而执行其他客户端的命令请求，它会将事务中所有的命令都执行完毕之后，才去处理其他客户端的命令请求。Redis事务的实现主要通过MULTI、EXEC和WATCH``三个命令实现，其中MULTI用于开启事务，EXEC用于提交事务、WATCH`用于监视任意数量的key。
Redis事务实现的一个核心结构是事务队列，当服务器以事务状态运行时，针对于接收到的不同命令会有不同的操作：

如]]></description><category></category></item><item><title><![CDATA[Redis发布订阅功能的实现原理]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109305482</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109305482</guid><author>Forlogen</author><pubDate>Tue, 27 Oct 2020 10:21:20 +0800</pubDate><description><![CDATA[Redis中的发布和订阅功能允许服务器向指定的频道发送消息，以及客户端可以订阅感兴趣的频道来接收消息。发布和订阅功能的实现主要由如下几个命令实现：

PUBLISH：用于服务器向指定的频道发送消息，格式为：PUBLISH CHANNEL MESSAGE
SUBSCRIBE：用于客户端订阅服务器指定具体名字的频道，格式为：SUBCRIBE CHANNEL_NAME
PSUBCRIBE：用于客户端订阅服务器指定匹配模式的频道，格式为：SUBCRIBE CHANNEL_PATTERN

知道了发布订阅功能的相关命]]></description><category></category></item><item><title><![CDATA[Spring ioc容器源码解析]]></title><link>https://blog.youkuaiyun.com/Forlogen/article/details/109299119</link><guid>https://blog.youkuaiyun.com/Forlogen/article/details/109299119</guid><author>Forlogen</author><pubDate>Mon, 26 Oct 2020 21:10:59 +0800</pubDate><description><![CDATA[ioc容器源码实现


Spring IOC 容器源码分析
Spring IOC 源码时序图


Spring中ioc容器的实现方式可以分为两种：

实现BeanFactory接口的简单容器：BeanFactory为其他类型容器的实现提供了最基本的功能规范
ApplicationContext应用上下文的高级容器：增加了面向框架的诸多特性，以及对于使用场景的适配，例如：

支持不同的信息源
访问资源
支持应用事件
其他附加的服务



Spring通过BeanDefinition来管理基于Spring的应用]]></description><category></category></item></channel></rss>