<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MwMonster的博客]]></title><description><![CDATA[要让事情改变，先改变我自己；要让事情变得更好，先让自己变得更好。]]></description><link>https://blog.youkuaiyun.com/qq_36630853</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_36630853]]></copyright><item><title><![CDATA[盛最多水的容器]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/109251917</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/109251917</guid><author>qq_36630853</author><pubDate>Fri, 23 Oct 2020 23:54:09 +0800</pubDate><description><![CDATA[地址：https://leetcode-cn.com/problems/container-with-most-water/
题目：给你 n 个非负整数 a1，a2，…，an，每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线，垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线，使得它们与 x 轴共同构成的容器可以容纳最多的水。
说明：你不能倾斜容器，且 n 的值至少为 2。

图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下，容器能]]></description><category></category></item><item><title><![CDATA[mybatis入门]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/109127064</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/109127064</guid><author>qq_36630853</author><pubDate>Sat, 17 Oct 2020 00:09:14 +0800</pubDate><description><![CDATA[1. 入门篇
需求：

根据用户id查询一个用户信息
根据用户名称模糊查询用户信息列表
插入用户信息
根据用户id更新用户信息
根据用户id删除用户信息

开工：


新建maven工程mybatis-demo
引入相关依赖（pom.xml）
&lt;dependencies&gt;
        &lt;!-- mybatis依赖 --&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.mybatis&lt;/groupId&gt]]></description><category></category></item><item><title><![CDATA[zookeeper和kafka集群安装]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107623712</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107623712</guid><author>qq_36630853</author><pubDate>Mon, 27 Jul 2020 22:58:17 +0800</pubDate><description><![CDATA[下载zookeeper
官网地址：https://zookeeper.apache.org/


下载kafka
官网地址：http://kafka.apache.org/


将下载好后的文件上传到服务器上，我这开了三台虚拟机，将文件上传到3台虚拟机上


解压zookeeper
# -C 后面对应自己的安装目录，可以自定
tar -zxvf zookeeper-3.4.14.tar.gz -C /home/mw/



修改zookeeper的配置文件
# 进入 zookeeper的配置目录下
cd..]]></description><category></category></item><item><title><![CDATA[15. InnoDB 架构]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107144100</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107144100</guid><author>qq_36630853</author><pubDate>Sun, 05 Jul 2020 20:09:25 +0800</pubDate><description><![CDATA[​	上图详细展示了InnoDB存储引擎的体系结构，从途中可见，InnoDB 存储引擎由 内存池、后台线程和磁盘文件三大部分组成。
1. Buﬀer Pool缓冲池
InnoDB存储引擎是基于磁盘存储的，并将其中的记录按照页的方式进行管理。但是由于CPU速度和磁盘速度之间的鸿沟，基于磁盘的数据库系统通常使用缓冲池记录来提高数据库的的整体性能。
在数据库中进行读取操作，将从磁盘中读到的页放在缓冲池中，下次再读相同的页中时，首先判断该页是否在缓冲池中。若在缓冲池中，称该页在缓冲池中被命中，直接读取该页。否则，读.]]></description><category></category></item><item><title><![CDATA[14. MySQL锁介绍]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107140916</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107140916</guid><author>qq_36630853</author><pubDate>Sun, 05 Jul 2020 16:44:19 +0800</pubDate><description><![CDATA[1. 锁介绍

按照锁的粒度来说，MySQL主要包含三种类型（级别）的锁定机制：

全局锁：锁的是整个database。由MySQL的SQL layer层实现的
表级锁：锁的是某个table。由MySQL的SQL layer层实现的
行级锁：锁的是某行数据，也可能锁定行之间的间隙。由某些存储引擎实现，比如InnoDB。


按照锁的功能来说分为：共享读锁和排他写锁。
按照锁的实现方式分为：悲观锁和乐观锁（使用某一版本列或者唯一列进行逻辑控制）
表级锁和行级锁的区别：

表级锁：开销小，加锁快；不会出现死锁；]]></description><category></category></item><item><title><![CDATA[13. 索引失效分析]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107114892</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107114892</guid><author>qq_36630853</author><pubDate>Fri, 03 Jul 2020 20:40:41 +0800</pubDate><description><![CDATA[1. 全值匹配
# 条件与索引一一对应
explain select * from tuser where name = 'zhaoyun' and age = 1 and sex = '1';


2. 最左前缀
组合索引中要遵守最左前缀法则。指的是 查询从索引的最左列开始，并且不跳过索引中的列。
# 错误案例，没有最左列
explain select * from tuser where age = 23;


# 中间索引断（带头索引生效，其他索引失效）
explain select * from t]]></description><category></category></item><item><title><![CDATA[12. 查看执行计划]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107114461</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107114461</guid><author>qq_36630853</author><pubDate>Fri, 03 Jul 2020 20:31:05 +0800</pubDate><description><![CDATA[查看执行计划
​	MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句的执行计划进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化。
​	查看该SQL语句有没有使用上了索引，有没有做全表扫描，这都可以通过explain命令来查看。
​	可以通过explain命令深入了解MySQL的基于开销的优化器，还可以获得很多可能被优化器考虑到的访问策略的细节，以及当运行SQL语句时哪种策略预计会被优化器采用。
​	EXPLAIN 命令用法十分简单, 在 SELECT 语句]]></description><category></category></item><item><title><![CDATA[11. MySQL索引原理]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107113078</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107113078</guid><author>qq_36630853</author><pubDate>Fri, 03 Jul 2020 19:24:15 +0800</pubDate><description><![CDATA[索引存储结构

索引是在存储引擎中实现的，也就是说不同的存储引擎，会使用不同的索引
MyISAM和InnoDB存储引擎：只支持B+ TREE索引， 也就是说默认使用BTREE，不能够更换
MEMORY/HEAP存储引擎：支持HASH和BTREE索引

B Tree 和 B+ Tree
1. B Tree图示
B Tree是为了磁盘或其他存储设备而设计的一种多叉平衡查找树。

B树的高度一般都是在2-4这个高度，树的高度直接影响IO读写的次数。
如果是三层树结构—支撑的数据可以达到20G，如果是四层树结构—支]]></description><category></category></item><item><title><![CDATA[10. MySQL索引介绍]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107110795</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107110795</guid><author>qq_36630853</author><pubDate>Fri, 03 Jul 2020 17:51:38 +0800</pubDate><description><![CDATA[索引介绍
​	索引是帮助MySQL高效获取数据的数据结构。更通俗的说，数据库索引好比是一本书前面的目录，能加快数据库的查询速度。
​	一般来说索引本身也很大，不可能全部存储在内存中，因此索引往往是存储在磁盘上的文件中的（可能存储在 单独的索引文件中，也可能和数据一起存储在数据文件中）。
我们通常所说的索引，包括聚集索引、覆盖索引、组合索引、前缀索引、唯一索引等，没有特别说明，默认都 是使用B+树结构组织（多路搜索树，并不一定是二叉的）的索引。
索引的优势和劣势
1. 优势：


可以提高数据检索的效率，降低]]></description><category></category></item><item><title><![CDATA[9. 更新语句执行流程]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107110336</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107110336</guid><author>qq_36630853</author><pubDate>Fri, 03 Jul 2020 17:32:28 +0800</pubDate><description><![CDATA[​	前面我们系统了解了一个查询语句的执行流程，并介绍了执行过程中涉及的处理模块。相信你还记得，一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块，最后到达存储引擎。
那么，一条更新语句的执行流程又是怎样的呢？
从一个表的一条更新语句说起，下面是这个表的创建语句，这个表有一个主键 ID 和一个整型字段 c：
mysql&gt; create table T(ID int primary key, c int);

如果要将 ID=2 这一行的值加 1，SQL 语句就会这么写：
mysql]]></description><category></category></item><item><title><![CDATA[4. MySQL语法：DQL]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107091270</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107091270</guid><author>qq_36630853</author><pubDate>Thu, 02 Jul 2020 19:13:46 +0800</pubDate><description><![CDATA[准备工作
# 商品表
create table product(
	pid int primary key auto_increment, # 自增加
	pname varchar(20), # 商品名称
	price double, # 商品价格
	pdate date, # 日期
	cid int # 分类ID
);

# 目录表
create table category(
	id int primary key,
	cname varchar(100)
);

INSERT INTO product]]></description><category></category></item><item><title><![CDATA[MySQL文章概览]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/107089346</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/107089346</guid><author>qq_36630853</author><pubDate>Thu, 02 Jul 2020 17:40:34 +0800</pubDate><description><![CDATA[基础篇

linux安装、配置及卸载MySQL
MySQL基本语法一：DDL
MySQL基本语法二：DML
MySQL基本语法三：DQL
SQL解析顺序
表与表之间的关系


]]></description><category></category></item><item><title><![CDATA[8. MySQL物理结构]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93914226</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93914226</guid><author>qq_36630853</author><pubDate>Fri, 28 Jun 2019 08:20:20 +0800</pubDate><description><![CDATA[mysql是通过文件系统对数据和索引进行存储的。
mysql从物理结构上可以分为日志文件和数据索引文件。
mysql在linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。

日志文件（顺序IO）
mysql通过日志记录了数据库操作信息和错误信息。常用的日志文件包括***错误日志、二进制日志、查询日志、慢查询日志和事务Redo日志、中继日志***等。
可以通过命令查看当前数...]]></description><category></category></item><item><title><![CDATA[7. 查询语句执行流程]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93867966</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93867966</guid><author>qq_36630853</author><pubDate>Thu, 27 Jun 2019 21:17:19 +0800</pubDate><description><![CDATA[mysql执行流程图

执行sql语句
select * from T where ID = 1;


]]></description><category></category></item><item><title><![CDATA[linux安装jenkins并进行配置]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93791726</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93791726</guid><author>qq_36630853</author><pubDate>Wed, 26 Jun 2019 23:18:17 +0800</pubDate><description><![CDATA[安装jenkins

安装tomcat
从官网下载jenkins.war包，放到tomcat的webapps目录下

scp jenkins.war root@ip地址:/要存放的位置


启动tomcat，可以在本地访问 ip:8080/jenkins(记得关闭防火墙或者开放端口)
进入主页，要求解锁jenkins，页面会给出提示一串地址

more /root/.jenkins/secre...]]></description><category></category></item><item><title><![CDATA[6、mysql逻辑架构]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93515256</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93515256</guid><author>qq_36630853</author><pubDate>Mon, 24 Jun 2019 19:54:05 +0800</pubDate><description><![CDATA[逻辑架构图

Connectors
连接器，指的是不同语言中与SQL的交互
Management Serveices &amp; Utilities
系统管理和控制工具
Connection Pool:连接池

管理缓冲用户连接，线程处理等需要缓存的需求。
负责监听对mysql服务器的各种请求，接收连接请求，转发所有连接请求到线程管理模块。每一个连接上mysql服务器的客户端请求都会被分配（或创建...]]></description><category></category></item><item><title><![CDATA[5. MySQL 解析顺序]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93253328</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93253328</guid><author>qq_36630853</author><pubDate>Sat, 22 Jun 2019 00:39:17 +0800</pubDate><description><![CDATA[mysql语法顺序
SELECT DISTINCT
    &lt; select_list &gt;
FROM
    &lt; left_table &gt; &lt; join_type &gt;
JOIN &lt; right_table &gt; ON &lt; join_condition &gt;
WHERE
    &lt; where_condition &gt;
GROUP B...]]></description><category></category></item><item><title><![CDATA[3. MySQL语法:DML]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93252696</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93252696</guid><author>qq_36630853</author><pubDate>Sat, 22 Jun 2019 00:15:31 +0800</pubDate><description><![CDATA[DQL语句（查询）
准备工作：创建表，插入数据
#商品表
CREATE TABLE product (
  pid INT PRIMARY KEY AUTO_INCREMENT, # 自增加 AUTO_INCREMENT
  pname VARCHAR(20),#商品名称
  price DOUBLE, #商品价格
  pdate DATE, # 日期
  cid int  #分类ID
);
#目...]]></description><category></category></item><item><title><![CDATA[2. MySQL语法：DDL]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93116960</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93116960</guid><author>qq_36630853</author><pubDate>Thu, 20 Jun 2019 20:09:18 +0800</pubDate><description><![CDATA[DDL语句
数据库操作 database
创建数据库
create database 数据库名;
create database 数据库名 character set utf8;

查看数据库
查看数据库服务器中所有的数据库
show databases;

查看某个数据库的定义的信息
show create database 数据库名;

删除数据库(慎用)
drop database 数据库名...]]></description><category></category></item><item><title><![CDATA[1. MySQL 5.6 的安装与卸载]]></title><link>https://blog.youkuaiyun.com/qq_36630853/article/details/93106349</link><guid>https://blog.youkuaiyun.com/qq_36630853/article/details/93106349</guid><author>qq_36630853</author><pubDate>Thu, 20 Jun 2019 19:33:19 +0800</pubDate><description><![CDATA[安装mysql
#下载rpm文件
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
#执行rpm源文件
rpm -ivh mysql-community-release-el6-5.noarch.rpm
#执行安装文件
yum install mysql-community-server

启动mysql
sys...]]></description><category></category></item></channel></rss>