This commit is contained in:
wenyongda 2024-03-29 16:34:15 +08:00
parent 5c38f5ef4d
commit 747d95a05f
5 changed files with 162 additions and 13 deletions

View File

@ -1413,10 +1413,20 @@ dnf update -y
dnf install nodejs -y
```
### 编译好的包安装(Prebuilt Binaries)
```shell
tar -xf node-v16.20.2-linux-x64.tar.xz
mv node-v16.20.2-linux-x64 /var/lib
ln -s /var/lib/node-v16.20.2-linux-x64/bin/node /usr/bin/node
ln -s /var/lib/node-v16.20.2-linux-x64/bin/npm /usr/bin/npm
ln -s /var/lib/node-v16.20.2-linux-x64/bin/npx /usr/bin/npx
```
## 安装宝塔面板
## 安装 Neofetch
```shell
@ -1425,8 +1435,6 @@ dnf install neofetch
neofetch
```
## 安装 Screenfetch
```shell
@ -1708,10 +1716,10 @@ read only = yes
安装 Java
Jenkins 需要 Java JRE v8 或 v11。 因此,使用以下命令安装 Java
Jenkins 需要 Java JRE v11 或 v17。 因此,使用以下命令安装 Java
```shell
sudo dnf install java-11-openjdk
sudo dnf install java-17-openjdk
```
验证 Java 版本:
@ -1720,23 +1728,23 @@ sudo dnf install java-11-openjdk
java -version
```
现在我们将 Jenkins 存储库添加到您的 AlmaLinux/Rocky Linux。 首先,将 Jenkins 密钥导入系统
现在我们将 Jenkins 存储库添加到您的 AlmaLinux/Rocky Linux。 首先,添加创建存储库
```shell
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
```
接下来,添加创建存储库
接下来,将 Jenkins 密钥导入系统
```shell
cd /etc/yum.repos.d/
curl -O https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
```
然后,使用以下命令安装 Jenkins
```shell
sudo dnf makecache
sudo dnf install fontconfig
sudo dnf install jenkins
```
@ -1770,3 +1778,40 @@ systemctl daemon-reload
```
### 修改用户及用户组
```shell
# 进入目录
cd /usr/lib/systemd/system
vim jenkins.service
# 或者
vim /usr/lib/systemd/system/jenkins.service
# 修改为root
User=root
Group=root
# 重新加载配置文件
systemctl daemon-reload
```
### 解决Jenkins部分汉化、汉化不全有效办法
```shell
# 进入目录
cd /usr/lib/systemd/system
vim jenkins.service
# 或者
vim /usr/lib/systemd/system/jenkins.service
# 添加 -Duser.language=C.UTF-8
Environment="JAVA_OPTS=-Djava.awt.headless=true -Duser.language=C.UTF-8"
# 重新加载配置文件
systemctl daemon-reload
```
## 安装 Subversion

View File

@ -70,9 +70,22 @@ mysqldump -uroot -p -B test > test.sql
```shell
wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.29/binary/redhat/9/x86_64/percona-xtrabackup-24-2.4.29-1.el9.x86_64.rpm
rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm --nodeps --force
rpm -ivh percona-xtrabackup-24-2.4.29-1.el9.x86_64.rpm
warning: percona-xtrabackup-24-2.4.29-1.el9.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 8507efa5: NOKEY
error: Failed dependencies:
libatomic.so.1()(64bit) is needed by percona-xtrabackup-24-2.4.29-1.el9.x86_64
libev.so.4()(64bit) is needed by percona-xtrabackup-24-2.4.29-1.el9.x86_64
perl(DBD::mysql) is needed by percona-xtrabackup-24-2.4.29-1.el9.x86_64
rsync is needed by percona-xtrabackup-24-2.4.29-1.el9.x86_64
dnf install libatomic -y
dnf install libev -y
dnf install -y rsync
dnf install perl-DBD-MySQL
```
- MySQL 8.0以下载并安装Percona XtraBackup 8.0为例
```shell
wget https://downloads.percona.com/downloads/Percona-XtraBackup-8.0/Percona-XtraBackup-8.0.32-26/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.32-26.1.el7.x86_64.rpm

View File

@ -815,6 +815,28 @@ SELECT DECODE(name, NULL, '未知', name) AS name FROM user;
以上语句中使用DECODE函数将name参数的NULL值替换为“未知”字符串。当name不为NULL时返回它本身的值。
### LTRIM
ltrim(char[,set])
去掉字符串 char 左侧包含在 set 中的任何字符,直到第一个不在 set 中出现的字符为止
### RTRIM
rtrim(char[,set])
去掉字符串 char 右侧包含在 set 中的任何字符,直到第一个不在 set 中出现的字符为止
```sql
SELECT ltrim('abcd','a') lefttrim, rtrim('abcde','e') righttrim FROM dual;
LEFTTRIM RIGHTTRIM
-------- ---------
bcd abcd
```
## 特性
### Row Movement
@ -1032,3 +1054,67 @@ alter table PEOPLE set partitioning manual;
### 间隔分区
## SQL 优化
### 什么是解释计划?
解释计划是一个关于SQL查询语句执行过程的文本表示。它显示了Oracle数据库如何执行查询语句并给出了每个步骤的详细信息如表的使用方式、索引的使用情况、连接的方法等等。通过分析解释计划我们可以了解查询语句的执行情况找出性能瓶颈并针对性地进行优化。
### Execute Explain Plan的使用方法
在Oracle [SQL](https://deepinout.com/sql/sql-top-tutorials/1694067222_j_sql-tutorial.html) Developer中我们可以使用”Execute Explain Plan”来生成查询语句的解释计划。首先我们需要打开SQL Worksheet并输入要分析的查询语句。然后在工具栏中选择”Explain Plan”按钮或者使用快捷键Ctrl+E来执行解释计划。在执行过程中Oracle数据库会为查询语句生成一个执行计划并将其显示在输出窗口中。
下面是一个示例查询语句和其对应的解释计划:
```sql
SELECT e.employee_id, e.last_name, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND e.salary > 5000;
```
解释计划:
| ID | 操作 | 名称 | 行数 | 成本 |
| :--: | :--------------: | :------------: | :--: | :--: |
| 0 | SELECT STATEMENT | | 5 | |
| 1 | NESTED LOOPS | | 5 | 2 |
| 2 | TABLE ACCESS | EMPLOYEES | 5 | 1 |
| 3 | INDEX | PK_EMPLOYEES | 107 | 2 |
| 4 | TABLE ACCESS | DEPARTMENTS | 1 | 1 |
| 5 | INDEX | PK_DEPARTMENTS | 27 | 1 |
上面的解释计划使用表格的形式展示了查询语句的执行过程。每一列的含义如下:
- ID表示一个操作的唯一标识符
- 操作表示每个操作的名称比如SELECT STATEMENT、NESTED LOOPS等
- 名称:表示该操作对应的表的名称或索引的名称
- 行数:表示该操作返回的结果行数
- 成本:表示执行该操作需要的成本,成本越低表示执行速度越快
解释计划的每一行表示一个操作操作之间的关系通过ID进行连接。在上面的示例中ID为1的操作是一个NESTED LOOPS操作它通过对EMPLOYEES表和DEPARTMENTS表进行连接来返回满足条件的结果。ID为2和ID为4的操作分别是对EMPLOYEES表和DEPARTMENTS表进行访问的操作而ID为3和ID为5的操作则是对EMPLOYEES表和DEPARTMENTS表的主键索引进行访问的操作。
### 解释计划中常见的操作和符号
在解释计划中,我们会经常遇到一些常见的操作和符号。下面列举了一些常见的操作和符号,并对其进行了解释:
- SELECT STATEMENT表示整个查询语句的执行计划
- TABLE ACCESS FULL表示对表进行全表扫描即读取表中的所有行
- TABLE ACCESS BY INDEX ROWID表示通过ROWID访问表ROWID是一种唯一标识表中每行的标识符
- INDEX RANGE SCAN表示对索引进行范围扫描即根据索引中的值范围来获取满足条件的结果
- NESTED LOOPS表示通过嵌套循环来执行连接操作
- HASH JOIN表示通过散列连接来执行连接操作通常用于连接大量数据的情况
- SORT JOIN表示对结果进行排序后再执行连接操作
在实际情况中,我们可能会遇到更复杂的操作和符号,但通过对常见操作和符号的理解,我们可以初步了解查询语句的执行过程。
### 性能优化和解释计划
解释计划是优化SQL查询语句性能的有力工具。通过分析解释计划我们可以找出查询语句执行过程中的瓶颈并进行优化。下面是一些常见的优化方法
- 对表添加索引:如果解释计划中出现了全表扫描的操作,说明查询语句没有使用到索引。在这种情况下,我们可以通过添加索引来提高查询性能。
- 优化连接操作如果解释计划中出现了嵌套循环或Hash连接等操作说明连接操作的性能较低。在这种情况下我们可以考虑重新设计查询语句或调整连接顺序来提高性能。
- 避免排序操作:如果解释计划中出现了排序操作,说明查询语句需要对结果进行排序。在这种情况下,我们可以考虑调整查询语句或添加索引来避免排序操作。
通过不断优化查询语句,我们可以提高数据库的查询性能,提升应用程序的响应速度。

View File

@ -0,0 +1,5 @@
---
title: RabbitMQ
date: 2024-03-26 12:48:20
tags:
---

View File

@ -1771,11 +1771,11 @@ export default ({ request }) => ({
```shell
# 淘宝镜像
# 永久生效
npm config set registry http://registry.npm.taobao.org/
npm config set registry https://registry.npmmirror.com
# 查看镜像
npm config get registry
# 暂时生效
npm install --registry http://registry.npm.taobao.org/
npm install --registry https://registry.npmmirror.com
```
### CentOS7安装node js