5.Linux系统中解压缩详解

本文详细介绍了Linux中常用的文件压缩和解压缩命令,包括tar命令的打包与压缩、解压缩,zip和unzip命令的使用,以及gzip和bzip2命令。通过实例展示了如何进行文件和目录的压缩、解压缩操作,同时提到了rar命令的安装和使用,帮助读者全面掌握Linux系统的文件管理技巧。
摘要由CSDN通过智能技术生成


前言

本小节讲解如何在linux当中进行解压缩,学习到命令包裹tar rar zip等相关命令。

1.打包(归档)和压缩

归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中。归档文件没有经过压缩,因此,它占用的空间是其中所有文件和目录的总和。
压缩文件也是一个文件和目录的集合,且这个集合也被存储在一个文件中,但它们的不同之处在于,压缩文件采用了不同的存储方式,使其所占用的磁盘空间比集合中所有文件大小的总和要小。

压缩是指利用算法将文件进行处理,达到保留最大文件信息,而让文件体积变小的目的。
基本原理为,通过查找文件内的重复字节,建立一个相同字节的词典文件,并用一个代码表示。比如说,在压缩文件中,有不止一处出现了 “mysql”,那么,在压缩文件时,这个词就会用一个代码表示并写入词典文件,这样就可以实现缩小文件体积的目的。

对文件进行压缩,很可能损坏文件中的内容,因此,压缩可以分为有损压缩和无损压缩。
无损压缩指数据必须准确无误;有损压缩指的是即便丢失个别的数据,对文件也不会造成太大的影响。有损压缩广泛应用于动画、声音和图像文件中,典型代表就是影碟文件格式 mpeg、音乐文件格式 mp3 以及图像文件格式 jpg。
采用压缩工具对文件进行压缩,生成的文件称为压缩包,该文件的体积通常只有原文件的一半甚至更小。压缩包中的数据无法直接使用,使用前需要利用压缩工具将文件数据还原,此过程又称解压缩。

Linux 下,常用的压缩命令有很多,比如 gzip、zip、bzip2 等。

2.tar命令详解(打包和解包)

Linux 系统中,最常用的归档命令就是 tar,该命令可以将许多文件一起保存到一个单独文件中。这个命令也可用作解压。
使用 tar 命令归档的包通常称为 tar 包(文件都是以“.tar”结尾的)。

tar命令做打包操作
当 tar 命令用于打包操作时,该命令的基本格式为:
[root@zaishu ~]#tar [选项] 源文件或目录
在这里插入图片描述
在使用 tar 命令指定选项时可以不在选项前面输入“-”。使用“cvf”选项和 “-cvf”起到的作用一样。

例1 打包文件和目录。

[root@zaishu ~]# tar -cvf aa.tar aa
aa
[root@zaishu ~]# ls
1  a  aa  aaa  aabbc  aa.tar  anaconda-ks.cfg  b  c  d  e  ip.sh  lamp-master  lamp-master.zip  sdcms_php_ee_2.4.2.zip  web  zs

打包时需要指定打包之后的文件名,而且要用 “.tar” 作为扩展名。

例2 打包目录也是如此:

[root@zaishu /]# tar -cvf root.tar root/
root/
....
root/aa.tar

#把目录打包为test.tar文件

例3 打包多个文件

[root@zaishu /]# tar -cvf zaishu.tar xx  home/
xx
home/
home/oracle/
home/oracle/.bash_logout
home/oracle/.bash_profile
home/oracle/.bashrc
home/oracle/.bash_history
[root@zaishu /]# 

#把xx和home目录打包成zaishu.tar文件包

tar命令解包操作
该命令的基本格式如下: [root@localhost ~]#tar [选项] 压缩包
当用于解打包时,常用的选项与含义如表 2 所示。
在这里插入图片描述

例1. 解包到当前目录下
如果使用 “-xvf” 选项,则会把包中的文件解压到当前目录下。

[root@zaishu zaishu.cn]# tar -xvf zaishu.tar 
xx
home/
home/oracle/
home/oracle/.bash_logout
home/oracle/.bash_profile
home/oracle/.bashrc
home/oracle/.bash_history

例2. 解包到指定位置,使用 “-C(大写)” 选项。
把文件包zaishu.tar解打包到zaishu.cn/目录下

[root@zaishu /]# tar -xvf zaishu.tar -C zaishu.cn/
xx
home/
home/oracle/
home/oracle/.bash_logout
home/oracle/.bash_profile
home/oracle/.bashrc
home/oracle/.bash_history

例3. 查看打包文件的内容,不解包
如果只想查看文件包中有哪些文件,则使用选项 “-t”,会显示里面文件的详细信息

[root@zaishu /]# tar -tvf zaishu.tar 
-rw-r--r-- root/root         0 2021-10-22 17:10 xx
drwxr-xr-x root/root         0 2021-10-22 15:06 home/
drwx------ oracle/oracle     0 2021-10-22 15:06 home/oracle/
-rw-r--r-- oracle/oracle    18 2020-04-01 10:17 home/oracle/.bash_logout
-rw-r--r-- oracle/oracle   193 2020-04-01 10:17 home/oracle/.bash_profile
-rw-r--r-- oracle/oracle   231 2020-04-01 10:17 home/oracle/.bashrc
-rw------- oracle/oracle    89 2021-10-22 15:18 home/oracle/.bash_history

3.tar命令详解(解压缩)

压缩命令不能直接压缩目录,必须先用 tar 命令将目录打包,然后才能用 gzip 命令或 bzip2 命令对打包文件进行压缩。

tar命令可以同时对包进行打包和压缩,原理也是先打包,再进行压缩:
[root@localhost ~]#tar![ [](https://img-blog.csdnimg.cn/3346b2cc7f9e4a9992bc05d98915762e.png)

例1. 对已打包文件压缩
#gzip命令会把zaishu.tar压缩成zaishu.tar.gz

[root@zaishu /]# ls -l zaishu.tar 
-rw-r--r-- 1 root root 10240 Oct 22 17:10 zaishu.tar
[root@zaishu /]# gzip zaishu.tar 
[root@zaishu /]# ls -l zaishu.tar.gz 
-rw-r--r-- 1 root root 615 Oct 22 17:10 zaishu.tar.gz  //可看到空间已经变小

例2. 压缩与解压缩 ".tar.gz"格式。
[root@localhost ~]# tar -zcvf tmp.tar.gz /tmp/
#把/tmp/目录直接打包压缩为".tar.gz"格式,通过"-z"来识别格式,“-cvf"和打包选项一致
解压缩在解打包选项 “-xvf” 前面加了一个 “-z” 选项。#解压缩与解打包”.tar.gz"格式 “-C” 用于指定解压位置、“-t” 用于查看压缩包内容。

root@zaishu /]# tar -zcvf tmp.tar.gz tmp/   //打包并压缩
tmp/
tmp/.ICE-unix/
tmp/.X11-unix/
tmp/.XIM-unix/
tmp/.font-unix/
tmp/.Test-unix/
tmp/vmware-root_539-4248811709/
tmp/cgicwjYI/
[root@zaishu zaishu.cn]# tar -zxvf tmp.tar.gz   //解压包到当前位置
tmp/
tmp/.ICE-unix/
...
tmp/mysql.sock.lock

例3. 压缩与解压缩 “.tar.bz2” 格式。
压缩和打包选项是 “-jcvf”

[root@zaishu /]# tar -jcvf tmp.tar.bz2 tmp/
#打包压缩为".tar.bz2"格式,注意压缩包文件名

解压缩和解包选项 -jxvf

[root@zaishu zaishu.cn]# tar -jxvf tmp.tar.bz2 

把文件直接压缩成".tar.gz"和".tar.bz2"格式,是 Linux 中最常用的压缩方式。

4.zip命令详解

[root@localhost ~]#zip [选项] 压缩包名 源文件或源目录列表
注意:zip命令,需要手工安装zip的包,可参照后面内容包的安装。
在这里插入图片描述
例1. zip 压缩文件

[root@zaishu ~]# zip cfg.zip anaconda-ks.cfg 
  adding: anaconda-ks.cfg (deflated 48%)
[root@zaishu ~]# ll cfg.zip 
-rw-r--r-- 1 root root 896 Oct 22 17:55 cfg.zip

例2. zip 压缩多个文件
压缩命令都可以同时压缩多个文件:
[root@zaishu log]# zip log.zip vmware-*.log
adding: vmware-network.1.log (deflated 63%)
adding: vmware-network.2.log (deflated 64%)
adding: vmware-network.3.log (deflated 64%)
adding: vmware-network.4.log (deflated 64%)
adding: vmware-network.log (deflated 65%)
adding: vmware-vmsvc-root.log (deflated 96%)
adding: vmware-vmtoolsd-root.log (deflated 77%)

[root@zaishu log]# ll log.zip
-rw-r–r-- 1 root root 32415 Oct 22 17:57 log.zip

例3. 使用 zip 命令压缩目录,需要使用“-r”选项:

[root@zaishu log]# zip -r tmp.zip /tmp/
  adding: tmp/ (stored 0%)
  adding: tmp/.ICE-unix/ (stored 0%)
  adding: tmp/.X11-unix/ (stored 0%)
  adding: tmp/.XIM-unix/ (stored 0%)
  adding: tmp/.font-unix/ (stored 0%)
  adding: tmp/.Test-unix/ (stored 0%)
  adding: tmp/vmware-root_539-4248811709/ (stored 0%)
  adding: tmp/cgicwjYI/ (stored 0%)
  adding: tmp/cgicwjYI/dummy.c (deflated 28%)
  adding: tmp/cgicwjYI/dummy.o (deflated 73%)
  adding: tmp/sess_d2a57fbc820a554efe86ed900d9f8f6d (deflated 44%)
  adding: tmp/vmware-root_530-2966037869/ (stored 0%)
  adding: tmp/vmware-root_527-4290035496/ (stored 0%)
  adding: tmp/mysql.sock.lock (stored 0%)
  adding: tmp/mysql.sock
zip warning: No such device or address
	zip warning: could not open for reading: tmp/mysql.sock

zip warning: Not all files were readable
  files/entries read:  14 (1.6K bytes)  skipped:  1 (0 bytes)
[root@zaishu log]# ls tmp.zip 
tmp.zip

5.unzip命令

unzip 命令可以查看和解压缩 zip 文件。
[root@localhost ~]# unzip [选项] 压缩包名
在这里插入图片描述
例1. 解压
不论是文件压缩包,还是目录压缩包,都可以直接解压缩:

[root@zaishu zaishu.cn]# unzip tmp.zip 
Archive:  tmp.zip
   creating: tmp/
   creating: tmp/.ICE-unix/
   creating: tmp/.X11-unix/
   creating: tmp/.XIM-unix/
   creating: tmp/.font-unix/
   creating: tmp/.Test-unix/
   creating: tmp/vmware-root_539-4248811709/
   creating: tmp/cgicwjYI/
  inflating: tmp/cgicwjYI/dummy.c    
  inflating: tmp/cgicwjYI/dummy.o    
  inflating: tmp/sess_d2a57fbc820a554efe86ed900d9f8f6d  
   creating: tmp/vmware-root_530-2966037869/
   creating: tmp/vmware-root_527-4290035496/
 extracting: tmp/mysql.sock.lock    

例2. 解压到指定位置
使用 -d 选项指定解压位置,把压缩包解压到指定位置:

[root@zaishu log]# unzip -d /zaishu.cn/ tmp.zip 
Archive:  tmp.zip
   creating: /zaishu.cn/tmp/
   creating: /zaishu.cn/tmp/.ICE-unix/
   creating: /zaishu.cn/tmp/.X11-unix/
   creating: /zaishu.cn/tmp/.XIM-unix/
   creating: /zaishu.cn/tmp/.font-unix/
   creating: /zaishu.cn/tmp/.Test-unix/
   creating: /zaishu.cn/tmp/vmware-root_539-4248811709/
   creating: /zaishu.cn/tmp/cgicwjYI/
  inflating: /zaishu.cn/tmp/cgicwjYI/dummy.c  
  inflating: /zaishu.cn/tmp/cgicwjYI/dummy.o  
  inflating: /zaishu.cn/tmp/sess_d2a57fbc820a554efe86ed900d9f8f6d  
   creating: /zaishu.cn/tmp/vmware-root_530-2966037869/
   creating: /zaishu.cn/tmp/vmware-root_527-4290035496/
 extracting: /zaishu.cn/tmp/mysql.sock.lock  

6.gzip命令

gzip 是 Linux 系统中经常用来对文件进行压缩和解压缩的命令,生成的压缩包扩展名通常标记为“.gz”。gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件。

gzip 命令的基本格式如下:
[root@localhost ~]# gzip [选项] 源文件
命令中的源文件,当进行压缩操作时,指的是普通文件;当进行解压缩操作时,指的是压缩文件。
gzip 命令常用选项及含义
在这里插入图片描述

例 1 基本压缩。
gzip 指定源文件名即可。会压缩空间,但注意源文件会消失

[root@prometheus ~]# ls -l anaconda-ks.cfg 
-rw-------. 1 root root 1380 Oct 17 11:27 anaconda-ks.cfg
[root@prometheus ~]# gzip anaconda-ks.cfg 
[root@prometheus ~]# ls -l anaconda-ks.cfg.gz 
-rw------- 1 root root 752 Oct 17 11:27 anaconda-ks.cfg.gz

例 2 保留源文件压缩。
在使用 gzip 不加任何参数压缩文件时,源文件会消失。
-c选项,不让压缩数据输出到屏幕上,而是重定向到压缩文件中,这样压缩文件的同时不删除源文件

[root@prometheus ~]# gzip -c anaconda-ks.cfg > anaconda-ks.cfg.gz
[root@prometheus ~]# ls anaconda-ks.cfg*
anaconda-ks.cfg  anaconda-ks.cfg.gz

例 3 压缩目录

[root@zaishu.cn ~]# mkdir test
[root@zaishu.cn ~]# touch test/test1
[root@zaishu.cn ~]# touch test/test2
[root@zaishu.cn ~]# touch test/test3 #建立测试目录,并在里面建立几个测试文件
[root@zaishu.cn ~]# gzip -r test/
#压缩目录,并没有报错
[root@zaishu.cn ~]# ls
anaconda-ks.cfg anaconda-ks.cfg.gz install.log.gz install.log.syslog test
#但是查看发现test目录依然存在,并没有变为压缩文件
[root@zaishu.cn ~]# ls test/
testl .gz test2.gz test3.gz
#原来gzip命令不会打包目录,而是把目录下所有的子文件分别压缩

在 Linux 中,打包和压缩是分开处理的。而 gzip 命令只会压缩,不能打包,所以才会出现没有打包目录,而只把目录下的文件进行压缩的情况。

7.gunzip命令

gunzip 解压被 gzip 压缩过的文件(扩展名为 .gz),也可以使用 gzip -d 解压。
gunzip 命令的基本格式为:
[root@localhost ~]# gunzip [选项] 文件
该命令常用的选项及含义在这里插入图片描述
例1. 解压文件。

[root@prometheus log]# gunzip yum.log.gz 
解压还可以使用 "gzip -d"命令,例如:
[root@prometheus log]# gzip -d yum.log.gz 

例2. 要解压缩目录下的内容,则需使用 “-r” 选项

[root@prometheus ~]# gunzip -r test/

例3. zcat
如果压缩的是一个纯文本文件,则可以直接使用 zcat 命令在不解压缩的情况下查看这个文本文件中的内容。例如:

[root@prometheus log]# zcat yum.log.gz 
Oct 17 11:47:28 Updated: 1:grub2-common-2.02-0.87.el7.centos.7.noarch
Oct 17 11:47:28 Updated: centos-release-7-9.2009.1.el7.centos.x86_64
Oct 17 11:47:29 Updated: 1:grub2-pc-modules-2.02-0.87.el7.centos.7.noarch
Oct 17 11:47:29 Updated: ca-certificates-2021.2.50-72.el7_9.noarch
Oct 17 11:47:30 Updated: tzdata-2021c-1.el7.noarch
Oct 17 11:47:30 Updated: nss-softokn-freebl-3.67.0-3.el7_9.x86_64

8.bzip2

bzip2也只能对文件进行压缩(或解压缩),对于目录只能压缩(或解压缩)该目录及子目录下的所有文件。命令执行完成后,会生成一个以“.bz2”为后缀的压缩包。

bzip2 命令的基本格式如下:
[root@localhost ~]# bzip2 [选项] 源文件
常用的选项及各自如下:在这里插入图片描述
gzip 不会打包目录,但使用“-r”选项,则可以分别压缩目录下的每个文件;而 bzip2 命令则根本不支持压缩目录,没有“-r”选项。

例1. 直接压缩文件。

[root@zaishu.cn ~]# bzip2 anaconda-ks.cfg
#压缩成".bz2"格式
此压缩命令会在压缩的同时删除源文件。

例2. 压缩的同时保留源文件。

[root@zaishu.cn~]# bzip2 -k install.log.syslog
#压缩
[root@zaishu.cn ~]# ls
anaconda-ks.cfg.bz2 install.loginstalLlogsyslog install.logsyslogbz2
#压缩文件和源文件都存在

9.bunzip2

对于“.bz2”结尾的压缩文件,可以使用“bzip2 -d 压缩包名”命令,还可以使用 bunzip2 命令。

bunzip2 [选项] 源文件
此命令常用的选项以及各自的含义在这里插入图片描述

[root@zaishu.cn~]# bunzip2 anaconda-ks.cfg.bz2
".bz2" 格式也可以使用 "bzip2 -d 压缩包" 命令来进行解压缩,例如:
[root@zaishu.cn~]# bzip2 -d install.log.syslog.bz2".gz" 格式一样,".bz2" 格式压缩的纯文本文件也可以不解压缩直接查看,使用的命令是 bzcat。例如:
[root@zaishu.cn~]# bzcat install.log.syslog.bz2

注意:如果找不到命令,请安装bzip2软件包 yum install bzip2

10. rar解压缩

  1. 下载软件包
[root@prometheus ~]# wget http://www.rarlab.com/rar/rarlinux-x64-5.0.0.tar.gz
  1. 安装软件包
[root@prometheus ~]# tar -zxvf rarlinux-x64-5.0.0.tar.gz 
[root@prometheus rar]# make && make install
  1. 报错处理(非必须)
    如果执行 rar 或者unrar 命令报错
rar: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by rar)
unrar: /lib64/libc.so.6: version `GLIBC_2.7' not found (required by unrar)

执行下面的拷贝

cp rar_static /usr/local/bin/rar
cp rar_static /usr/local/bin/unrar
  1. 归档
[root@prometheus ~]# rar a tmp.rar /tmp/

RAR 5.00   Copyright (c) 1993-2013 Alexander Roshal   22 Aug 2013
Trial version             Type RAR -? for help
Evaluation copy. Please register.
Creating archive tmp.rar
Adding    /tmp/yum.log                                                OK 
Adding    /tmp/ks-script-V9ygsD                                       OK 
Done
  1. 解档
    unrar e Archive.rar DestPath
[root@prometheus ~]# unrar e tmp.rar 
UNRAR 5.00 freeware      Copyright (c) 1993-2013 Alexander Roshal
Extracting from tmp.rar
Extracting  yum.log                                                   OK 
Extracting  ks-script-V9ygsD                                          OK 
All OK

总结

通过本小节的讲解,可以熟练掌握在Linux中如何处理文件或目录的解压缩。

友情链接

MySQL性能优化_原理_实战

1、MySQL在金融互联网行业的企业级安装部署

目录章节
版本说明版本说明
安装MySQL规范1 安装方式
2 安装用户
3 目录规范
MySQL 5.7 安装部署1 操作系统配置
2 创建用户
3 创建目录
4 安装
5 配置文件
6 安装依赖包
7 配置环境变量
8 初始化数据库
9 重置密码
MySQL8 安装MySQL8 安装
源码安装1 安装依赖包
2 生成源码包
3 创建用户
4 编译安装
5 配置数据库
6 连接mysql
多实例部署及注意事项1 多实例概念
2 多实例安装
3 mysqld_multi(多实例第二种安装方式)

2、mysql启动关闭原理和实战_及常见错误排查

目录章节
生产中MySQL启动方式1、 启动原理
2、参数文件默认位置及优先级
3、 以server方式启动
4、 mysqld_safe方式
5、 mysqld 方式
6、 systemctl 方式
关库1、相关参数innodb_fast_shutdown
2、相关参数innodb_force_recovery
3、关闭mysql多种方式
常见MySQL启动失败案例1.、目录权限
2、参数问题
3、配置文件
4、端口占用
5、误删二进制文件
6、undo表空间异常
7、binlog缓冲异常
MySQL启动失败排查方法MySQL启动失败排查方法
连接MySQL数据库的方式连接MySQL数据库的方式
MySQL数据库用户安全策略1、初始化数据库
2、修改密码
3、删除无用的用户
4、mysql_secure_installation
找回丢失的用户密码找回丢失的用户密码

3、MySQL字符集和校对规则

目录章节
MySQL字符集和校验规则MySQL字符集和校验规则
查看字符集方法1、查看mysql支持的字符集
2、查看字符集的校对规则
3、查看当前数据库的字符集
4、查看当前数据库的校对规则
MySQL字符集设置1、字符集设置层级关系
2、设置MySQL服务器级别字符集
3、设置创建对象的字符集
字符集案例1、常用字符集每个汉字占用字节多少
2、大小案例
插入中文乱码解决插入中文乱码解决
数据库常见字符集及如何选择字符集数据库常见字符集及如何选择字符集
生产中如何彻底避免出现乱码生产中如何彻底避免出现乱码

4、史上最详细的Mysql用户权原理和实战_生产案例

目录章节
访问控制1、连接验证(阶段一)
2、允许的连接
3、连接优先级
4、请求验证(阶段二)
用户管理1、新增用户
2、修改用户
3、删除用户
4、查看用户
密码管理1、密码修改
2、密码过期设置
3、set password
4、密码过期策略
5、密码插件
MySQL用户权限管理1、权限粒度
2、显示账户权限
3、显示账户非权限属性
4、库级权限
5、表级权限
6、列级权限
7、权限回收
资源限制1、用户创建指定配额
2、修改配额
MySQL用户权限案例1、断掉已清理的用户
2、忘记密码
3、如何禁止一个ip段的某个用户登录
4、创建开发账号
5、创建复制账号
6、创建管理员账号

5、InnoDB引擎原理和实战_通俗易懂

目录章节
缓冲池1、默认引擎
2、设置缓冲池大小
3、优化缓冲池
4、管理缓冲池
5、数据页类型
线程1、IO线程
2、主线程
index pageindex page
insert buffer pageinsert buffer page
重做日志重做日志
回滚日志回滚日志
checkpoint,刷写脏页check pointcheckpoint
关键特性1、插入缓冲
2、数据写入可靠性提升技术-doublewrite
3、自适应哈希索引-AHI
innodb预读预写技术预读写

6、MySQL文件详解_物理结构_逻辑结构_原理和案例

目录章节
参数和配置文件1、文件位置
2、查找参数
3、参数类型
4、参数修改
5、示例一
6、示例二
7、注意事项
错误日志文件错误日志
通用日志通用日志
慢查询日志慢日志
binlog1、记录什么
2、用途
3、开启和参数配置
4、日志查看
5、日志刷新
6、删除日志
7、日志分析(mysqlbinlog)
8、利用二进制日志文件恢复误删的表
InnoDB存储引擎表空间文件表空间文件
主从同步相关文件主从同步文件
套接字文件套接字文件
pid 文件pid 文件
redo log1、redo初识
2、日志组
3、与oracle redo的区别
4、相关参数
5、和binlog的区别
6、redo 缓冲区(innodb_flush_log_at_trx_commit)
InnoDB存储引擎逻辑结构1、表空间
2、段
3、区
4、页
表碎片清理1、判断是否有碎片
2、整理碎片
表空间文件迁移1、需求
2、操作

7、SQL编程开发与优化事项

目录章节
常用语句1、导入数据
2、库操作
3、表操作
4、数据操作
5、use性能影响
6、delete、truncate、drop的区别
7、SQL语句分类
数据类型与性能1、整型
2、浮点型
3、字符串类型
4、日期类型
MySQL约束1、unsigned/signed
2、not null
3、count(*) 为什么慢
4、default
5、unique
6、 auto_increment
7、primary key
SQL编程高级1、查询Syntax
2、查询列
3、where子句
4、group by … having子句
5、order by子句
6、limit子句(分页)
7、聚合函数
8、合并查询
9、多表查询
10、子查询
表的元数据库管理1、统计应用库哪些表没有使用innodb存储引擎
2、如何查看表中是否有大对象
3、统计数据库大小
4、统计表的大小

8、MySQL索引原理和案例

目录章节
MySQL索引与二分查找法1、什么是索引
2、索引的优缺点
3、索引的最大长度
4、二分查找法:折半查找法
5、mysql一张表存多少数据后,索引性能就会下降?
剖析b+tree数据结构1、B和B+树的区别
2、索引树高度
3、非叶子节点
4、指针
5、叶子节点
6、双向指针
7、b+tree插入操作
8、b+tree删除操作
相辅相成的聚集索引和辅助索引1、聚集索引
2、聚集索引特点
3、聚集索引的优势
4、辅助索引
覆盖索引与回表查询1、回表查询
2、覆盖索引
创建高性能的主键索引1、主键索引创建的原则
2、主键索引的特点
3、为什么建议使用自增列作为主键
唯一索引与普通索引的性能差距1、唯一索引特点
2、普通索引特点
3、唯一索引与普通索引的性能差距
前缀索引带来的性能影响1、作用
2、坏处
如何使用联合索引1、什么是联合索引
2、创建原则
3、排序
Online DDL影响数据库的性能和并发1、5.6版本之前
2、新版本
3、online ddl语法
4、相关参数
5、示例
6、影响
pt-ocs原理与应用1、安装pt-osc
2、pt-osc语法
3、案例
4、pt-osc原理
生产中索引的管理1、建表时创建索引
2、建表后创建索引
3、查看索引
SQL语句无法使用索引的情况1、where条件
2、联合索引
3、联表查询
4、其他情况

9、information_schema和sys中性能查看

目录章节
最常用的STATISTICS和TABLES1、STATISTICS:用于存放索引的信息
2、TABLES:用于存放库表的元数据信息
判断索引创建是否合理1、选择性
2、索引创建的建议
检查联合索引创建是否合理1、联合索引创建是否合理
2、有了联合索引(a,b),还需要单独创建a索引吗?
如何查找冗余索引查找冗余索引
查找产生额外排序的sql语句额外排序的sql语句
查找产生临时表的sql语句临时表的sql语句
全表扫描的sql语句全表扫描的sql语句
统计无用的索引无用的索引
索引统计信息1、存储索引统计信息
2、如何查看索引统计信息

10、MySQL优化器算法与执行计划

目录章节
简单嵌套查询算法-simple nested-loop joinsimple nested-loop join
基于索引的嵌套查询算法-index nested-loop joinindex nested-loop join
基于块的嵌套查询算法- block nested-loop joinblock nested-loop join
Multi-Range ReadMRR
bached key access joinBKA
mysql三层体系结构体系结构
Index Condition Pushdown索引条件下推
一条查询SQL语句是怎样运行的查询SQL语句
一条更新SQL语句是怎样运行的更新SQL语句
MySQL长连接与短连接的选择1、相关参数
2、断开连接
执行计划explain1、语法
2、执行计划解析

11、MySQL查询优化

目录章节
MySQL查询优化技术概览
子查询优化1、优化器自动优化
2、优化措施:子查询合并
3、优化措施:子查询上拉技术
外连接消除外连接消除
生产环境不使用join联表查询不使用join
group by分组优化1、group by执行流程
2、为什么group by要创建临时表
order by排序优化排序优化
MySQL性能抖动问题性能抖动问题
count(*)优化count(*)优化
磁盘性能基准测试1、安装sysbench
2、生成文件
3、测试文件io
4、清除文件
MySQL基准测试1、生成数据
2、测试(读)
3、测试(写)
4、清理数据

12、事务原理和实战

目录章节
认识事务认识事务
事务控制语句1、开启事务
2、事务提交
3、事务回滚
事务的实现方式1、原子性
2、一致性
3、隔离性
4、持久性
purge thread线程purge thread线程
事务统计QPS与TPS1、QPS
2、TPS
事务隔离级别1、隔离级别
2、查看隔离级别
3、设置隔离级别
4、不同隔离级别下会产生什么隔离效果
事务组提交group commit组提交
事务两阶段提交两阶段提交
MVCC多版本并发控制1、MVCC原理
2、MVCC案例

13、锁的原理和应用

目录章节
认识锁1、锁的作用
2、加锁的过程
3、锁对象:事务
innodb行锁1、行锁类型
2、共享锁(S锁)
3、排他锁(X锁)
索引对行锁粒度的影响1、行锁粒度有哪些
2、在RC隔离级别下不同索引产生的锁的范围
3、RR隔离级别下不同索引产生锁的范围
FTWRL全局读锁FTWRL全局读锁
innodb表锁innodb表锁
innodb意向锁与MDL锁1、意向锁
2、意向锁作用
3、意向锁冲突情况
4、MDL锁
自增锁自增锁
插入意向锁插入意向锁
死锁1、什么是死锁
2、相关参数
3、避免死锁
4、锁的状态
两阶段锁协议两阶段锁协议

14、慢查询原理和实战_快速优化方法_优化工具

目录章节
1. 系统状态show status
2. 慢查询2.1 慢查询开启
2.2 简单示例
2.3 数据准备
3. mysqldumpslow3.1 语法
3.2 常见用法
4. pt-query-digest4.1 安装
4.2 语法选项
4.3 报告解读
4.4 用法示例
5. 优化工具(soar)5.1 安装配置
5.2 添加数据库
5.3 语句优化

15、备份恢复原理和实战_逻辑备份_物理备份_金融行业备份还原脚本

目录章节
1.生产中备份方式1.1 物理备份与逻辑备份
1.2 联机与脱机备份
1.3 完整备份与增量备份
1.4 常用命令
2.mysqldump备份2.1 相关参数
2.2 备份所有数据库
2.3 备份指定数据库
2.4 备份指定表
2.6 只导出结构
2.7 只导出数据
2.8 --tab(生成文本,类似load)
2.8 mysqldump原理
2.9 binlog异步备份
2.10 利用mysqldump全备及binlog恢复数据
3.xtrabackup3.1 Xtrabackup安装
3.2 原理
3.2 备份过程
3.4 恢复原理
3.3 相关参数
3.4 xtrabackup相关文件
3.5 备份示例
3.6 还原示例
4.binlog备份和恢复(数据库恢复)4.1 找到恢复时间点
4.2 增量恢复
5. 生产环境的备份恢复实战5.1 实施部署
5.1.1 环境清单
5.1.2 备份目的
5.1.3 备份说明
5.1.4 实施步骤
5.1.5 全备脚本
5.1.6 差异备份脚本
5.2 实施部署备份还原
5.2.1 Xtraback还原全量/差异备份
5.2.2 故障点数据恢复
5.2.3 增量恢复

16、主从复制,gtid,并行复制_半同步复制_实操案例_常用命令_故障处理

目录章节
1.认识主从复制1.1 主从复制原理深入讲解
1.2 主从复制相关参数
1.3.主从复制架构部署
1.4从库状态详解
1.5 .过滤复制
2 .gtid复制2.1 什么是GTID?
2.2 GTID主从配置
2.5 gtid维护
2.4 GTID的特点
2.3 工作原理
2.4 gtid相关状态行和变量
3. 并行复制3.1 延迟的原因
3.2 并行复制设置
3.3 查看并行复制
4. 增强半同步复制4.1 异步复制
4.2 半同步复制
4.3 增强半同步复制
4.4 配置增强半同步
5. 案例5.1 主库删除操作导致sql线程关闭案例
5.2 主从复制中断解决方案及案例
5.3 延迟复制
5.4 主库drop误操作利用延迟复制恢复案例
6 常用命令6.1 启动线程
6.2 关闭线程
6.3 查看
6.4 重置
6.5 主从数据一致性校验

17、MySQL高可用和读写分离架构
MHA

目录章节
MHA介绍
架构和相关组件架构和相关组件
工作流程工作流程
MHA高可用架构部署1、环境准备
2、软件安装
3、创建软链接
4、配置各节点互信
5、节点免密验证
6、mha管理用户
7、配置文件
8、状态检查
9、开启MHA
主库宕机故障模拟及处理主库宕机故障模拟及处理
MHA VIP自动切换VIP自动切换
MHA主从数据自动补足MHA主从数据自动补足

Atlas

目录章节
Atlas读写分离高性能架构介绍
安装配置安装配置
配置注解配置注解
启动和关闭启动和关闭
读写分离架构应用读写分离架构应用
创建应用用户创建应用用户
Atlas在线管理Atlas在线管理
读写分离避坑指南读写分离避坑指南

18、MySQL分库分表_原理实战

目录章节
1.MyCAT分布式架构入门及双主架构1.1 主从架构
1.2 MyCAT安装
1.3 启动和连接
1.4 配置文件介绍
2.MyCAT读写分离架构2.1 架构说明
2.2 创建用户
2.3 schema.xml
2.4 连接说明
2.5 读写测试
2.6 当前是单节点
3.MyCAT高可用读写分离架构3.1 架构说明
3.3 schema.xml(配置)
3.4 文件详解
3.4.1 schema标签
3.4.2 table标签
3.4.3 dataNode标签
3.4.4 dataHost
3.4 读写测试
3.5 故障转移
4.MyCAT垂直分表4.1 架构
4.2 新建表
4.3 配置mycat
4.4 验证
5 MyCAT水平分表-范围分片5.1 新建表
5.2 schema.xml
5.2 rule.xml
5.3 autopartition-long.txt
5.4 验证
6. MyCAT水平分表-取模分片取模分片
7. MyCAT水平分表-枚举分片枚举分片
8. MyCAT全局表与ER表全局与ER表
8.1 全局表8.1.1 特性
8.1.2 建表
8.1.3 配置
8.1.4 验证
8.1.5 分析总结(执行计划)
8.2 ER表8.2.1 特性
8.2.2 建表
8.2.3 配置
8.2.4 测试验证,子表是否跟随父表记录分片
8.2.5 分析总结(执行计划)

19、基准性能测试_sysbench

目录章节
1. sysbench1.1 用途
1.2 安装
1.3 版本
1.4 查看帮助
1.5 测试过程阶段
2 CPU 性能测试2.1 测试原理
2.2 查看帮助
2.3 测试
3. 内存性能测试3.1 查看帮助信息
3.2 测试过程
4.磁盘性能基准测试4.1 查看帮助
4.2 生成文件(prepare)
4.3 测试文件io(run)
4.4 结果分析
4.5 清除文件(cleanup)
5. 线程测试5.1 查看帮助信息
5.2 测试过程
6. MySQL基准测试6.1 语法参数
6.2 生成数据
6.3 测试(读)
6.4 测试(写)
6.5 清理数据
  • 10
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Linux 解压缩命令包括: 1. tar 命令:用于打包和解包文件,常用的选项包括 -x(解包)、-c(打包)、-v(显示详细信息)、-f(指定文件名)等。 2. gzip 命令:用于压缩和解压缩文件,常用的选项包括 -d(解压缩)、-c(输出到标准输出)、-v(显示详细信息)等。 3. bzip2 命令:用于压缩和解压缩文件,常用的选项包括 -d(解压缩)、-c(输出到标准输出)、-v(显示详细信息)等。 4. unzip 命令:用于解压缩 ZIP 格式的文件,常用的选项包括 -d(指定解压缩目录)、-l(列出压缩文件的文件列表)、-v(显示详细信息)等。 5. unrar 命令:用于解压缩 RAR 格式的文件,常用的选项包括 -x(解压缩)、-e(解压缩到指定目录)、-v(显示详细信息)等。 以上是常用的 Linux 解压缩命令,可以根据需要选择使用。 ### 回答2: Linux 解压缩命令是指通过命令行的方式将压缩文件解压成原始文件的一种操作方法。在 Linux 系统,有多种不同的压缩格式,如 tar、gzip、zip 等常见的压缩格式,因此也有多种不同的解压缩命令。以下是常见的几种解压缩命令及其用法: 1. tar 解压缩命令 tar 命令可以将多个文件或目录打包成一个文件,并可选择压缩格式,如 gzip、bzip2 等。解压缩时,需要根据文件后缀名选择相应的选项,如 .tar、.tar.gz、.tar.bz2 等。具体命令如下: 解压 tar 文件: tar -xvf file.tar 解压 tar.gz 文件: tar -zxvf file.tar.gz 解压 tar.bz2 文件: tar -jxvf file.tar.bz2 2. gzip 解压缩命令 gzip 是一种常见的压缩格式,可以将文件压缩成 .gz 文件。解压缩时,直接使用 gzip 命令即可。具体命令如下: 解压缩 gzip 文件: gzip -d file.gz 3. bzip2 解压缩命令 bzip2 是一种比 gzip 更高效的压缩格式,可以将文件压缩成 .bz2 文件。解压缩时,直接使用 bzip2 命令即可。具体命令如下: 解压缩 bzip2 文件: bzip2 -d file.bz2 4. zip 解压缩命令 zip 是一种常见的跨平台压缩格式,可以将多个文件或目录压缩成一个 .zip 文件。解压缩时,直接使用 unzip 命令即可。具体命令如下: 解压缩 zip 文件: unzip file.zip 以上是常用的几种 Linux 解压缩命令及其用法,可以根据自己的需要选择相应的命令。需要注意的是,在解压缩时需要保证文件路径和权限的正确性,否则可能会出现解压失败的情况。 ### 回答3: Linux解压缩命令是操作系统的重要组成部分。Linux系统支持各种压缩和解压缩格式,如tar,gz,bz2,xz等。在Linux系统,有许多命令用于压缩和解压缩文件和目录,这些命令可以使用控制台或终端窗口运行。下面介绍常用的解压缩命令: 1. tar命令。tar命令可以将多个文件和目录打包成一个文件,或将已经打好包的文件进行解包。 解压文件命令: tar -zxvf filename.tar.gz 其-z表示解压缩gz格式的文件,-x表示解开文件,-v表示显示解包文件的详细信息,-f表示指定待解包的文件名。 压缩文件命令: tar -zcvf filename.tar.gz dirname/ filename ... 其-c表示创建文件,-z表示压缩成gz格式,-v表示显示压缩文件的详细信息,-f表示指定压缩文件的文件名,dirname/ 表示将某个目录文件夹下的所有文件压缩成一份文件,filename ... 表示压缩若干个指定的文件。 2. unzip命令。unzip命令专用于解压缩zip格式的文件。 解压文件命令: unzip filename.zip 其filename.zip表示需要解压的zip格式文件名。 3. gunzip命令。gunzip命令专门用于解压缩gz格式的文件。 解压文件命令: gunzip filename.gz 其filename.gz表示需要解压缩的gz格式文件名。 4. bzip2和bunzip2命令。bzip2和bunzip2命令可用于压缩和解压缩bz2格式的文件。 解压文件命令: bunzip2 filename.bz2 其filename.bz2表示需要解压缩的bz2格式的文件。 压缩文件命令: bzip2 filename 其filename表示需要压缩的文件名。 5. xz和unxz命令。xz和unxz命令可用于压缩和解压缩xz格式的文件。 解压文件命令: unxz filename.xz 其filename.xz表示需要解压缩的xz格式文件名。 压缩文件命令: xz filename 其filename表示需要压缩的文件名。 以上是Linux解压缩命令的用法。在使用这些命令时需要注意一些细节,如指定正确的压缩格式和文件名、压缩和解压缩的时候需要区分文件名和目录路径等。 总的来说,熟练掌握这些命令可以让我们更加轻松地在Linux系统处理压缩和解压缩的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值