Linux 扩展磁盘空间

news2024/11/24 20:54:56

1. 为什么我的 Linux 磁盘空间不够用?/ 插入新的磁盘要怎么用?

[注]:第一节基本是一些啰里啰唆的内容,想直接看如何操作,请直接跳转至第二小节🧐

  很多人遇到这样的问题,当给一台新的主机安装上 Linux 系统之后,没过多久发现自己的磁盘不够用了,但自己主机的磁盘原本很大应该没那么快就用满才对🤔。

  这是由于大多数的同学在安装 Linux 系统的时候都选择的是由系统自动分配磁盘空间,很多时候引导程序仅仅使用某一个物理磁盘,或者使用固定大小(远小于实际磁盘空间)的磁盘空间来布局 Linux 系统仅保证系统的基本运行配置。这样子一来,等到我们正式使用系统的时候会发现,系统的空间比我们实际的空间小的多。

root@linux-im:~# df -hT
Filesystem                      Type   Size  Used Avail Use% Mounted on
tmpfs                           tmpfs  1.6G  1.3M  1.6G   1% /run
/dev/mapper/ubuntu--vg-sys_root ext4   3.0T  267G  2.6T  10% /
tmpfs                           tmpfs  7.9G     0  7.9G   0% /dev/shm
tmpfs                           tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/sda2                       ext4   2.0G  244M  1.6G  14% /boot
tmpfs                           tmpfs  1.6G  8.0K  1.6G   1% /run/user/1000

就像下面这样,查看当前系统的磁盘空间基本上就是个 3TB 的样子。再来看看笔者实际上的物理磁盘。

root@linux-im:~# fdisk -l
Disk /dev/loop0: 61.96 MiB, 64970752 bytes, 126896 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop1: 46.96 MiB, 49242112 bytes, 96176 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop2: 79.95 MiB, 83832832 bytes, 163736 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop3: 61.96 MiB, 64966656 bytes, 126888 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/loop4: 46.95 MiB, 49233920 bytes, 96160 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 3 TiB, 3298534883328 bytes, 6442450944 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 1207CE68-7484-4012-9AB3-F7782443D93A

Device       Start        End    Sectors Size Type
/dev/sda1     2048       4095       2048   1M BIOS boot
/dev/sda2     4096    4198399    4194304   2G Linux filesystem
/dev/sda3  4198400 6442448895 6438250496   3T Linux filesystem

#========================================================================
Disk /dev/sdb: 10 TiB, 10995116277760 bytes, 21474836480 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x9e4ba441
#========================================================================


Disk /dev/mapper/ubuntu--vg-sys_root: 3 TiB, 3296383205376 bytes, 6438248448 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

  上述系统输出中笔者特意用双横线圈起来的一块物理磁盘,即为系统没有使用的物理磁盘(我这么大的磁盘,你不用??纯纯浪费!),还在想这么大的空间是怎么一下子突然满的,原来是人家系统根本没有用到哦(hh)。

  以上描述同样适用于新插入磁盘,当系统新插入磁盘后不会自动为我们分配空间到实际使用的目录中,而是仅作为未分配状态存在。参考 Windows 即就是如下图这样的状态。
在这里插入图片描述

2. 扩展磁盘空间

Tips: 如果想要将 /home 目录的空间和 / 根目录的磁盘空间合并,可参考这篇博客《Linux 将 /home 目录与 / 根目录磁盘合并》。

  好了,言归正传,下面我们看实操部分。在上文中我们看到有一个未分配的 10TB 大小的磁盘,其设备节点为 /dev/sdb。接下来我们需要先将其分区(分配为可用空间)。

2.1. 分区

  执行 fdisk <设备节点>,这里需要注意的是若磁盘大于 2TB,则需要使用 gdisk 命令,二者用法相同。(笔者这里的磁盘已经超过 2TB,因此使用 gdisk)。下面是详细的使用过程输出,简单来讲就是:

(1) 执行 gdisk /dev/sdb,(小于 2TB 大小的磁盘使用 fdisk /dev/sdb);
(2)敲 p,将磁盘分区,并且一路回车即可;
(3)敲 w,保存设置。

root@linux-im:~# gdisk /dev/sdb
GPT fdisk (gdisk) version 1.0.8

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): ?
b       back up GPT data to a file
c       change a partition's name
d       delete a partition
i       show detailed information on a partition
l       list known partition types
n       add a new partition
o       create a new empty GUID partition table (GPT)
p       print the partition table
q       quit without saving changes
r       recovery and transformation options (experts only)
s       sort partitions
t       change a partition's type code
v       verify disk
w       write table to disk and exit
x       extra functionality (experts only)
?       print this menu

Command (? for help): p
Disk /dev/sdb: 21474836480 sectors, 10.0 TiB
Model: Virtual disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): AE9E9686-8757-4A17-B3F5-EFC7CEB9B9E1
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 21474836446
Partitions will be aligned on 2048-sector boundaries
Total free space is 21474836413 sectors (10.0 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-21474836446, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-21474836446, default = 21474836446) or {+-}size{KMGTP}:
Current type is 8300 (Linux filesystem)
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/sdb: 21474836480 sectors, 10.0 TiB
Model: Virtual disk
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): AE9E9686-8757-4A17-B3F5-EFC7CEB9B9E1
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 21474836446
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048     21474836446   10.0 TiB    8300  Linux filesystem

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

小知识:
fdisk 与 gdisk 的区别
使用 fdisk 命令的磁盘分区格式为 DOS 分区表格式;
使用 gdisk 命令的磁盘分区格式为 GUID 分区表格式。

使用 fdisk 分配大于 2TB 大小的磁盘会弹出这样的提示信息:
DOS partition table format cannot be used on drives for volumes larger than 2199023255040 bytes for 512-byte sectors. Use GUID partition table format (GPT).

2.2. 建立 ext4 文件系统

  目前 Linux 系统中常用的文件系统格式为 ext4,这里将上述分配的磁盘分区创建为 ext4 文件系统格式。

(1) 执行 mkfs -t ext4 /dev/sdb1

root@linux-im:~# mkfs -t ext4 /dev/sdb1
mke2fs 1.46.5 (30-Dec-2021)
Creating filesystem with 2684354299 4k blocks and 335544320 inodes
Filesystem UUID: c996ee7c-7f19-41d6-ae71-60534b3b4ea5
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
        102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
        2560000000

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks):
done
Writing superblocks and filesystem accounting information: done

2.3. 查看当前物理卷标

  执行 pvdisplay 命令查看系统当前磁盘的物理卷标名称是什么。这里主要看 VG Name 的信息,这里笔者的系统物理卷名为 ubuntu-vg。如果是 centos8 及以上系统,这里的物理卷标名应该是 cl,具体按照实际情况来确定。

root@linux-im:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <3.00 TiB / not usable 0
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              785919
  Free PE               0
  Allocated PE          785919
  PV UUID               8RysFf-u2YW-18O9-jCSI-Fyfk-ngws-tg7KTP

2.4. 创建物理卷

  将建立好文件系统格式的分区创建为可用物理卷。
(1) 执行 pvcreate /dev/sdb1,创建物理卷;
(2) 执行 vgextend ubuntu-vg /dev/sdb1,添加物理卷到卷组。(若是 centos8 以上系统则应该是 cl,具体按照实际情况来确定)

root@linux-im:~# pvcreate /dev/sdb1
WARNING: ext4 signature detected on /dev/sdb1 at offset 1080. Wipe it? [y/n]: y
  Wiping ext4 signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.


root@linux-im:~# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <3.00 TiB / not usable 0
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              785919
  Free PE               0
  Allocated PE          785919
  PV UUID               8RysFf-u2YW-18O9-jCSI-Fyfk-ngws-tg7KTP

  "/dev/sdb1" is a new physical volume of "<10.00 TiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name
  PV Size               <10.00 TiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               EZffYg-uZY4-Rm4h-B1E3-m7by-nnU8-Y3S1VG

添加到物理卷组

# 查看卷组名称
root@linux-im:~# vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <3.00 TiB
  PE Size               4.00 MiB
  Total PE              785919
  Alloc PE / Size       785919 / <3.00 TiB
  Free  PE / Size       0 / 0
  VG UUID               ewSMf0-ckFt-0QKF-4hUe-2EgC-1CSx-NVNEfe

#添加到卷组
root@linux-im:~# vgextend ubuntu-vg /dev/sdb1
  Volume group "ubuntu-vg" successfully extended
  
root@linux-im:~# vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               <13.00 TiB
  PE Size               4.00 MiB
  Total PE              3407358
  Alloc PE / Size       785919 / <3.00 TiB
  Free  PE / Size       2621439 / <10.00 TiB
  VG UUID               ewSMf0-ckFt-0QKF-4hUe-2EgC-1CSx-NVNEfe

2.5. 将可用空间扩展到 / 根目录

  将上述做好的物理卷分配到根目录空间中。首先要知道自己想要扩展的是哪个挂载点。
(1) 执行 du -hT,查看根目录挂载的绝对路径;

root@linux-im:~# df -hT
Filesystem                      Type   Size  Used Avail Use% Mounted on
tmpfs                           tmpfs  1.6G  1.3M  1.6G   1% /run
/dev/mapper/ubuntu--vg-sys_root ext4   3.0T  267G  2.6T  10% /
tmpfs                           tmpfs  7.9G     0  7.9G   0% /dev/shm
tmpfs                           tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/sda2                       ext4   2.0G  244M  1.6G  14% /boot
tmpfs                           tmpfs  1.6G  8.0K  1.6G   1% /run/user/1000

  笔者这里想要扩展的挂载点是 / 根目录,其物理路径为 /dev/mapper/ubuntu--vg-sys_root,不同系统挂载点不同,根据实际情况修改即可。

(2) 执行 lvresize -L +9.9T /dev/mapper/ubuntu--vg-sys_root 为挂载点增加 9.9TB 磁盘空间;
[注]:这里的 9.9T 为扩展的大小,尤为注意这里的 +,必须添加,如果忘记写这个加号,将会导致严重的后果,虽然也是有办法补救,但很麻烦。

root@linux-im:~# lvresize -L +9.9T /dev/mapper/ubuntu--vg-sys_root
  Rounding size to boundary between physical extents: 9.90 TiB.
  Size of logical volume ubuntu-vg/sys_root changed from <3.00 TiB (785919 extents) to <12.90 TiB (3381145 extents).
  Logical volume ubuntu-vg/sys_root successfully resized.

[注]:其实很难一次性将可用空间全部增加完,添加完之后可以根据估计所剩空间来减少增加内存大小来继续扩展,即这里的 9.9T 可改为 10G,继续执行扩展命令。

2.6. 更新文件系统

  到此其实已经将磁盘分配好了,不过还有一步很重要的事情要做,那就是更新系统文件系统,不做这一步将不会看到系统空间的实际增加。

(1) 执行 resize2fs /dev/mapper/ubuntu--vg-sys_rootcentos 系统执行 xfs_growfs 命令)

#同步文件系统
# centos::xfs_growfs /dev/mapper/ubuntu--vg-sys_root
root@linux-im:~# resize2fs /dev/mapper/ubuntu--vg-sys_root
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-sys_root is mounted on /; on-line resizing required
old_desc_blocks = 384, new_desc_blocks = 1664
The filesystem on /dev/mapper/ubuntu--vg-sys_root is now 3488769024 (4k) blocks long.

执行 df -hT,这个时候会发现,自己扩展的空间生效了!!

rootlinux-im:~# df -hT
Filesystem                      Type   Size  Used Avail Use% Mounted on
tmpfs                           tmpfs  1.6G  1.3M  1.6G   1% /run
/dev/mapper/ubuntu--vg-sys_root ext4    13T  267G   12T   3% /
tmpfs                           tmpfs  7.9G     0  7.9G   0% /dev/shm
tmpfs                           tmpfs  5.0M     0  5.0M   0% /run/lock
/dev/sda2                       ext4   2.0G  244M  1.6G  14% /boot
tmpfs                           tmpfs  1.6G  8.0K  1.6G   1% /run/user/1000

#本文完

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596599.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL报错cannot add foreign key constraint解决方法

1 问题场景 利用Navicat对MySQL两张表想要进行外键关联时设置正确&#xff0c;但出现出现如下错误 2 原因分析 创建外键错误的原因大概有一下几个原因&#xff1a; 1、关联的两个字段的字段的类型不一致 2、设置外键删除时set null 3、两张表的引擎不一致 2.1 数据类型不一…

2023 下半年程序员生存指南!

见字如面&#xff0c;我是军哥&#xff01; 最近看到 4 月份&#xff0c;我国青年失业率 20.4%&#xff0c;说实话这个数字相当的高呀&#xff01; 另外&#xff0c;伴随最近若干大厂裁员&#xff0c;就这周就有两位读者跟我说被裁员了&#xff0c;我估计下半年的 IT 行业更是艰…

BR 5AP1130.156C-000

物料号: 5AP1130.156C-000 描述: 自动化装置面板 15.6" FullHD TFT - 1920 x 1080 像素 (16:9) - 多点触控&#xff08;投射电容&#xff09; - 开关柜安装 - 横向 - 用于 PPC900/PPC2100/PPC3100/ 联接模块 B&R ID 代码0xEC5D许可证 显示屏 类型TFT 彩色对角线…

ChatGPT 插件:深入探讨 OpenAI 的新功能及其如何改变我们使用 AI 的方式

OpenAI的API现在正在为成千上万的商业和开源项目和应用程序提供AI动力。而在推出六个月后&#xff0c;ChatGPT的插件终于加入了机智的聊天机器人&#xff0c;能够更好的应用在不同的场景中。 &#x1f50c; 什么是ChatGPT插件&#xff1f; ChatGPT插件是专门的扩展&#xff0…

报错:dll不是有效的win32应用程序

学习如何创建并调用动态库时&#xff0c;新建了一个项目用于调用自己创建的动态库&#xff0c;如下&#xff1a; 其中Dll3是新创建的动态库&#xff0c;text3是新建的另一个项目用于调用Dll3动态库&#xff0c;运行时报错如下&#xff1a; 原因在于Dll3动态库是默认的启动项目…

得物 H5容器 野指针疑难问题排查 解决

1背景 得物 iOS 4.9.x 版本 上线后&#xff0c;一些带有横向滚动内容的h5页面&#xff0c;有一个webkit 相关crash增加较快。通过Crash堆栈判断是UIScrollview执行滚动动画过程中内存野指针导致的崩溃。 2前期排查 通过页面浏览日志&#xff0c;发现发生崩溃时所在的页面都是…

C/C++数据类型从0到内存具体分配详解

一&#xff0c;数据类型分类 1.整形家族&#xff1a;char , short , int , long , long long , unsigned int , unsigned char , unsinged short , unsigned long , unsinged long long 。&#xff08;为什么将char归入整形家族是因为字符在机器中是以Ascll码值储存的&#…

分类管理你的联系人,有效提升营销转化率!

电子邮件营销已成为外贸和跨境电商企业宣传产品和服务的必不可少的工具。在电子邮件营销中&#xff0c;电子邮件联系人列表的质量对活动的成功至关重要。提高联系人名单质量的途径之一就是对联系人进行分类管理。本文将讨论为邮件联系人为什么要分类管理&#xff1f; 1、提高活…

风险投资成功案例分析_著名的风投成功案例

风险投资成功案例分析1 转换科技公司(Transition Technology Inc.以下简称TTI)在1987年初开始寻求风险资本&#xff0c;直到212天后终于获得了3i风险投资公司(以下简称3i)等提供的300万美元风险资本。这是一个比较常规的风险投资过程&#xff0c;但其中的曲折历程也颇耐人…

Maven uber-jar(带依赖的打包插件) spring-boot-maven-plugin

文章目录 最基础的 spring-boot-maven-plugin 使用指定入口类安装部署原始 Jar 包到仓库保持原始Jar包名称&#xff0c;为 spring-boot-maven-plugin 生成的Jar包添加名称后缀打包时排除依赖建议将生成的Jar解压后了解一下整体结构与其他常用打包插件比较 本文是对 spring-boot…

04 【计算属性 侦听属性】

04 【计算属性 侦听属性】 1.计算属性 1.1插值语法实现 <title>姓名案例_插值语法实现</title><div id"root">姓&#xff1a;<input type"text" v-model"firstName"> <br/>名&#xff1a;<input type"…

Python自动人工智能训练数据增强工具 | DALI介绍(含代码)

Python自动人工智能训练数据增强工具 | DALI介绍(含代码) 文章目录 Python自动人工智能训练数据增强工具 | DALI介绍(含代码)自动数据增强方法DALI 和条件执行使用 DALI 自动增强使用 DALI 的自动增强性能尝试使用 DALI 进行自动增强 深度学习模型需要数百 GB 的数据才能很好地…

回归测试:优先级(Coverage 的适应度函数)

回归测试&#xff1a;优先级 介绍 在确定优先级时&#xff0c;我们的目标是为测试用例找到一个好的顺序。理想情况下&#xff0c;我们希望尽早发生任何故障。这可以加快整体开发过程&#xff0c;例如&#xff1a; 有时&#xff0c;一旦发现失败&#xff0c;我们就会停止测试。…

HashMap详细讲解-面试题大全

HashMap底层数据结构是什么&#xff1f;1.7和1.8有何不同 1.7是 数组 链表&#xff0c;1.8 是数组 &#xff08;链表 或者 红黑树&#xff09; 当链表的元素比较多的时候&#xff0c;链表就会转换成红黑树&#xff0c;红黑树的元素减少了&#xff0c;红黑树也会转换成链表 为…

前后分离的优势

1.可以实现真正的前后端解耦&#xff0c;前端服务器使用nginx。 前端/WEB服务器放的是css&#xff0c;js&#xff0c;图片等等一系列静态资源&#xff08;甚至你还可以css&#xff0c;js&#xff0c;图片等资源放到特定的文件服务器&#xff0c;例如阿里云的oss&#xff0c;并使…

【计算机网络】前后端分离,HTTP协议,网络分层结构,TCP,强缓存/协商缓存

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 前后端分类HTTP协议HTTP组成HTTP的版本HTTP的请求方式HTTP请求头HTTP响应头强缓存和协商缓存 HT…

Linux ls -l输出文件信息详解

在linux中&#xff0c;我们知道一切皆为文件&#xff0c;经常我们会使用ls -l去查看文件的信息&#xff0c;今天会大家详细讲解一下ls -l输出的文件属性信息。 1.ls -l输出 命令&#xff1a; ls -l 通过ls -l命令输出&#xff0c;我们可以看到上图中的属性信息输出&#xff…

【珍藏版】生态系统NPP及碳源、碳汇模拟、土地利用变化、未来气候变化、空间动态模拟

由于全球变暖、大气中温室气体浓度逐年增加等问题的出现&#xff0c;“双碳”行动特别是碳中和已经在世界范围形成广泛影响。碳中和可以从碳排放&#xff08;碳源&#xff09;和碳固定&#xff08;碳汇&#xff09;这两个侧面来理解。陆地生态系统在全球碳循环过程中有着重要作…

五、JSP05 分页查询及文件上传

五、JSP 分页查询及文件上传 5.1 使用分页显示数据 通过网络搜索数据时最常用的操作&#xff0c;但当数据量很大时&#xff0c;页面就会变得冗长&#xff0c;用户必须拖动才能浏览更多的数据 分页是把数据库中需要展示的数据逐页分步展示给用户 以分页的形式显示数据&#xff…

Elasticsearch 8.X “图搜图”实战

1、什么是图搜图&#xff1f; "图搜图"指的是通过图像搜索的一种方法&#xff0c;用户可以通过上传一张图片&#xff0c;搜索引擎会返回类似或者相关的图片结果。这种搜索方式不需要用户输入文字&#xff0c;而是通过比较图片的视觉信息来找到相似或相关的图片。这项…