diff --git a/DevOps.md b/DevOps.md index 7b38bfb..30187b8 100644 --- a/DevOps.md +++ b/DevOps.md @@ -4893,39 +4893,116 @@ nginx的配置文件中可以使用的内置变量以美元符`$`开始,也有 - `$document_uri` :与`$uri`相同 +# VMware -# Optimize +## 虚拟机安装 +VMware15.5安装,傻瓜式安装,只记录变动步骤,其余都下一步,软件安装位置自己选择,最好别选c盘,软件地址https://www.nocmd.com/windows/740.html(内含激活码),安装时需要注意它文件不会在一个文件夹下,自己多建一个版本文件夹,方便管理。 -## MySQL +![在这里插入图片描述](images/DevOps/20210717124755337.png) -### SQL +![在这里插入图片描述](images/DevOps/2021071712480749.png) -#### 查询 +**文件 > 新建虚拟机**: -`规则1`:**尽量避免使用子查询** +![在这里插入图片描述](images/DevOps/20210717125629709.png) -内部执行计划:先查询外表再匹配内表,当外表数据量很大时,查询速度会非常慢。 +![在这里插入图片描述](images/DevOps/20210717125643324.png) -`规则2`:**避免函数索引** +![在这里插入图片描述](images/DevOps/20210717125659179.png) -MySQL不像Oracle那样支持函数索引,即时是函数内的字段有索引,也会扫描全表。 +![在这里插入图片描述](images/DevOps/20210717125714713.png) -`规则3`:**用IN来替换OR** +![在这里插入图片描述](images/DevOps/20210717125727428.png) -MySQL对IN做了优化,即将IN中的常量全部存储在数组里,且排好序。但IN中的数值较多时,产生的消耗也比较大。连续数值可以用BETWEEN,而非IN。 +![在这里插入图片描述](images/DevOps/20210717125743717.png) -### 分页 +点击安装计算机的设置 > 选择镜像后 > 点确定: -```mysql -select id,name from table_name limit 866613, 20; -# 改为 -select id,name from table_name where id> 866612 limit 20; -``` +![在这里插入图片描述](images/DevOps/20210717125911587.png) + +开启虚拟机》选第一个install centos7 + +![在这里插入图片描述](images/DevOps/20210717125946871.png) + +等待一段时间不要乱点,乱点会卡死,》软件选择》最小安装或gui服务器或gnome桌面,选好后点完成。开发中一般都选最小安装,需要什么软件在自行选择,但其它安装可以省略jdk,mysql等安装,会自行安装。 + +![在这里插入图片描述](images/DevOps/20210717130014474.png) + +在这一步也可以选择自动配置分区,这里更快,这里我选择我要配置分区。 + +![在这里插入图片描述](images/DevOps/202107171300526.png)设置好/boot要1G,swap要2G,剩余都在根目录分区大小后,设备类型点标准分区,点完成。 + +![在这里插入图片描述](images/DevOps/20210717130123660.png) + +点接受更改 + +![在这里插入图片描述](images/DevOps/20210717130215238.png) + +网络和主机名设置,需要联网就打开以太网。 + +![在这里插入图片描述](images/DevOps/20210717130237758.png) + +最后一个像一把锁的安检策略可以关闭。 + +点开始安装 +在这个页面配置root账号密码,创建用户账号密码。在实际开发中root账号要复杂点,避免被破解。 + +![在这里插入图片描述](images/DevOps/20210717130319942.png)等待完成后,点击重启。 + +![在这里插入图片描述](images/DevOps/20210717130343591.png) + +![在这里插入图片描述](images/DevOps/20210717130404642.png) + +再把网络连接打开。 + + + +## 虚拟机网络连接方式 +- 桥接模式:同一网段中,最多只能连接255台机子,一旦超出容易造成IP冲突。IP地址的前3位就是网段(192.168.0.1) +- NAT(网络地址装换)模式:虚拟机和外部通信,不会造成IP冲突。虚拟机地址不再是以0开头,而是生成1-255之间的数,如192.168.6.1,然后主机会生成一个对应的虚拟网卡如192.168.6.6,两者能通信。这种模式下虚拟机能访问192.168.0.1,由于网段不同,192.168.0.1不能访问虚拟机 +- 主机模式:虚拟网络对主机可见,虚拟机不能上网 + + + +## 安装vmtools +vmtools工具是实现虚拟机和主机文件进行共享,两个地方都能修改同一文件。安装步骤如下 + +- 右击虚拟机 install vmware tools +- 双击VMware Tools,复制XXX.tar.gz压缩包到/opt目录下 +- 桌面上打开终端,cd /opt ,进入到opt目录下,使用解压命令tar -zxvfVM+tab键提示自动补全名称, 得到一个解压文件夹 +- 进入该vm解压的目录cd vmxxx,/opt目录下 +- 安装./vmware-install.pl +- 全部使用默认设置即可,一直按回车,就可以安装成功 + +注意:安装vmtools需有gcc ,可以使用gcc -v查看gcc版本 + + + +## 虚拟机目录 + +- /bin :存放着最经常使用的命令 +- /home :存放普通用户的主目录,一般该目录名是以用户的账号命名 +- /root :该目录为系统管理员,也称作超级权限者的用户主目录(根目录) +- /boot:Linux启动相关文件 +- /lib:系统开机所需要最基本的动态连接共享库,其作用类似于Windows里的DLL文件。 +- /lost+ found这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件 +- /etc:系统管理所需配置和子文件目录 +- /user:用户应用程序和文件 +- /proc[不能动]:是虚拟目录,系统内存映射,访问这个目录获取系统信息 +- /srv[不能动]:存放服务启动后所需数据 +- /sys[不能动]:该目录安装了2.6内核新出现的文件系统 +- /tmp:存放临时文件 +- /mnt:存放挂载文件 +- /opt:给主机额外安装软件的目录,即软件存放目录 +- /user/local:软件安装后的目标目录,一般是编译源码的方式安装的程序 -### 索引 +## CentOS7找回root密码 -失效场景: +- 启动系统,进入开机页面,按e键进入编辑页面 +- 光标向下移动,找到以“Linux16”开头的行数,行末输入init=/bin/sh,接着按ctr+x进入单用户模式 +- 在光标闪烁位置输入:mount -o remount,rw /,完成后回车 +- 接着输入passwd,完成后回车,输入密码后回车,再次输入密码。修改成功后会显示passwd…… +- 接着在光标位置输入:touch /.autorelabel,完成后回车,等待系统重启,新密码就生效了 -函数内的字段、LIKE前缀%号、双百分号、 \ No newline at end of file diff --git a/Middleware.md b/Middleware.md index a4d9949..a88e508 100644 --- a/Middleware.md +++ b/Middleware.md @@ -3865,7 +3865,22 @@ Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC, ## MyBatis架构 -![Mybatis架构](images/Middleware/Mybatis架构.jpg) +![Mybatis核心成员数据流](images/Middleware/Mybatis核心成员数据流.png) + +核心成员说明 + +| 核心成员 | 功能说明 | +| ---------------- | ------------------------------------------------------------ | +| Configuration | 保存MyBatis大部分配置信息 | +| SqlSession | MyBatis主要的顶层API,与数据库交互,实现数据库增删改查功能 | +| Executor | MyBatis 调度器,负责SQL语句的生成和查询缓存的维护 | +| StatementHandler | 封装JDBC,负责对JDBC statement 的操作,如设置参数等 | +| ParameterHandler | 用户传递的参数转换成JDBC Statement 所对应的数据类型 | +| ResultSetHandler | 负责将JDBC返回的ResultSet结果集对象转换成List类型的集合 | +| TypeHandler | 负责java数据类型和jdbc数据类型(也可以说是数据表列类型)之间的映射和转换 | +| MappedStatement | MappedStatement维护一条节点的封装 | +| SqlSource | 负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到BoundSql对象中,并返回 | +| BoundSql | 表示动态生成的SQL语句以及相应的参数信息 | @@ -3885,7 +3900,7 @@ Mapper接口里的方法,是不能重载的,因为是使用 全限名+方法 ## MyBatis缓存 -MyBatis 中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。一级缓存是指 SqlSession 级别的缓存,当在同一个 SqlSession 中进行相同的 SQL 语句查询时,第二次以后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存 1024 条 SQL。二级缓存是指可以跨 SqlSession 的缓存。是 mapper 级别的缓存,对于 mapper 级别的缓存不同的sqlsession 是可以共享的。 +MyBatis 中有一级缓存和二级缓存,默认情况下一级缓存是开启的,而且是不能关闭的。一级缓存是指 SqlSession 级别的缓存,当在同一个 SqlSession 中进行相同的 SQL 语句查询时,第二次以后的查询不会从数据库查询,而是直接从缓存中获取,一级缓存最多缓存 1024 条 SQL。二级缓存是指可以跨 SqlSession 的缓存。是 mapper 级别的缓存,对于mapper级别的缓存不同的sqlsession 是可以共享的。一级缓存核心类是PerpetualCache,本质是一个hashMap。二级缓存默认不开启。 ![MyBatis缓存机制](images/Middleware/MyBatis缓存机制.png) diff --git a/images/DevOps/20210717124755337.png b/images/DevOps/20210717124755337.png new file mode 100644 index 0000000..264adb1 Binary files /dev/null and b/images/DevOps/20210717124755337.png differ diff --git a/images/DevOps/2021071712480749.png b/images/DevOps/2021071712480749.png new file mode 100644 index 0000000..6ef2dc7 Binary files /dev/null and b/images/DevOps/2021071712480749.png differ diff --git a/images/DevOps/20210717125629709.png b/images/DevOps/20210717125629709.png new file mode 100644 index 0000000..16575de Binary files /dev/null and b/images/DevOps/20210717125629709.png differ diff --git a/images/DevOps/20210717125643324.png b/images/DevOps/20210717125643324.png new file mode 100644 index 0000000..1b75605 Binary files /dev/null and b/images/DevOps/20210717125643324.png differ diff --git a/images/DevOps/20210717125659179.png b/images/DevOps/20210717125659179.png new file mode 100644 index 0000000..81f236f Binary files /dev/null and b/images/DevOps/20210717125659179.png differ diff --git a/images/DevOps/20210717125714713.png b/images/DevOps/20210717125714713.png new file mode 100644 index 0000000..6a5174b Binary files /dev/null and b/images/DevOps/20210717125714713.png differ diff --git a/images/DevOps/20210717125727428.png b/images/DevOps/20210717125727428.png new file mode 100644 index 0000000..f6a7dc8 Binary files /dev/null and b/images/DevOps/20210717125727428.png differ diff --git a/images/DevOps/20210717125743717.png b/images/DevOps/20210717125743717.png new file mode 100644 index 0000000..12b952c Binary files /dev/null and b/images/DevOps/20210717125743717.png differ diff --git a/images/DevOps/20210717125911587.png b/images/DevOps/20210717125911587.png new file mode 100644 index 0000000..d2a471c Binary files /dev/null and b/images/DevOps/20210717125911587.png differ diff --git a/images/DevOps/20210717125946871.png b/images/DevOps/20210717125946871.png new file mode 100644 index 0000000..1ac81b9 Binary files /dev/null and b/images/DevOps/20210717125946871.png differ diff --git a/images/DevOps/20210717130014474.png b/images/DevOps/20210717130014474.png new file mode 100644 index 0000000..c92cc02 Binary files /dev/null and b/images/DevOps/20210717130014474.png differ diff --git a/images/DevOps/202107171300526.png b/images/DevOps/202107171300526.png new file mode 100644 index 0000000..4325c04 Binary files /dev/null and b/images/DevOps/202107171300526.png differ diff --git a/images/DevOps/20210717130123660.png b/images/DevOps/20210717130123660.png new file mode 100644 index 0000000..02cce0a Binary files /dev/null and b/images/DevOps/20210717130123660.png differ diff --git a/images/DevOps/20210717130215238.png b/images/DevOps/20210717130215238.png new file mode 100644 index 0000000..b4e50fe Binary files /dev/null and b/images/DevOps/20210717130215238.png differ diff --git a/images/DevOps/20210717130237758.png b/images/DevOps/20210717130237758.png new file mode 100644 index 0000000..c73d1b8 Binary files /dev/null and b/images/DevOps/20210717130237758.png differ diff --git a/images/DevOps/20210717130319942.png b/images/DevOps/20210717130319942.png new file mode 100644 index 0000000..9ea4f1a Binary files /dev/null and b/images/DevOps/20210717130319942.png differ diff --git a/images/DevOps/20210717130343591.png b/images/DevOps/20210717130343591.png new file mode 100644 index 0000000..73a678c Binary files /dev/null and b/images/DevOps/20210717130343591.png differ diff --git a/images/DevOps/20210717130404642.png b/images/DevOps/20210717130404642.png new file mode 100644 index 0000000..0725eac Binary files /dev/null and b/images/DevOps/20210717130404642.png differ diff --git a/images/Middleware/Mybatis架构.jpg b/images/Middleware/Mybatis架构.jpg deleted file mode 100644 index 8ada389..0000000 Binary files a/images/Middleware/Mybatis架构.jpg and /dev/null differ diff --git a/images/Middleware/Mybatis核心成员数据流.png b/images/Middleware/Mybatis核心成员数据流.png new file mode 100644 index 0000000..37faff8 Binary files /dev/null and b/images/Middleware/Mybatis核心成员数据流.png differ