pull/1/head
ruyu.li 3 years ago
parent 91abbb3c1f
commit 44c2e3a242

@ -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桌面选好后点完成。开发中一般都选最小安装需要什么软件在自行选择但其它安装可以省略jdkmysql等安装会自行安装。
![在这里插入图片描述](images/DevOps/20210717130014474.png)
在这一步也可以选择自动配置分区,这里更快,这里我选择我要配置分区。
![在这里插入图片描述](images/DevOps/202107171300526.png)设置好/boot要1Gswap要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 :该目录为系统管理员,也称作超级权限者的用户主目录(根目录)
- /bootLinux启动相关文件
- /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前缀%号、双百分号、

@ -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维护一条<select\|update\|delete\|insert>节点的封装 |
| 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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Loading…
Cancel
Save