提交
This commit is contained in:
parent
5c38f5ef4d
commit
747d95a05f
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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连接等操作,说明连接操作的性能较低。在这种情况下,我们可以考虑重新设计查询语句或调整连接顺序来提高性能。
|
||||
- 避免排序操作:如果解释计划中出现了排序操作,说明查询语句需要对结果进行排序。在这种情况下,我们可以考虑调整查询语句或添加索引来避免排序操作。
|
||||
|
||||
通过不断优化查询语句,我们可以提高数据库的查询性能,提升应用程序的响应速度。
|
||||
|
||||
|
||||
5
source/_posts/RabbitMQ.md
Normal file
5
source/_posts/RabbitMQ.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
title: RabbitMQ
|
||||
date: 2024-03-26 12:48:20
|
||||
tags:
|
||||
---
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user