关于 windows 磁盘容量大小知识
windows 现在分 32 位和 64 位。
理论上32位系统的内存大小是 2^32 - cluster size
。具体计算如下
1bit * 8 = 1byte(1b)
1b * 1024 = 1kb * 1024 = 1mb * 1024 = 1gb
1gb * 1024 = 1t
1t * 1024 = 1pb
综合:1b * 2^10 * 2^10 * 2^10 * 2^10 = 1 * 2^40 (超过了 2^32)
磁盘的簇大小分根据格式化的文件系统类型的不同分三种:
- NTFS,簇(又叫分配单元大小)分为
4096(default),8192,16k,32k,64k,128k,256k,512k,1024k,2048k
- FAT,
8192(default),16k,32k,64k
- FAT32,
512,1024,2048,4096(default)
这些信息我们可以从运行命令行得知:
diskpart #运行diskpart,会弹出一个cmd窗口
list disk #显示磁盘列表
Select disk 0 #选择要查看的磁盘
list partition #显示目标磁盘分区
select partition 1 #选择目标分区
FILESYSTEM #显示当前文件系统信息
############################## 显示如下
当前文件系统
类型 : FAT
分配单元大小 : 8192
标志: 00000000
用于格式化的文件系统
类型 : NTFS (推荐)
分配单元大小 : 4096 (默认), 8192, 16K, 32K, 64K, 128K, 256K, 512K, 1024K, 2048K
类型 : FAT (默认)
分配单元大小 : 8192 (默认), 16K, 32K, 64K
类型 : FAT32
分配单元大小 : 512, 1024, 2048, 4096 (默认)
查看当前磁盘的簇大小,还有一种简单的方法:在您所在的盘符,新建一个大小为1 kb 左右的文件,然后鼠标右键查看属性,就能看到选项 “占用空间”,我的磁盘显示为 4kb(4096)。这样就得知我的当前磁盘的簇大小就为 4096,也就是 NTFS 默认的簇大小。
关于设置簇大小的区别
既然系统分这么多簇大小,并且系统默认是 4096,如果设置成了其他大小的簇会有什么影响?
相关专家 Jonathan 建议,如果只是一般的 window 标准用户,那么用系统默认的簇大小即可。基本上当你格式化硬盘的时候(比如 NTFS),簇大小就是当前块大小。如果你有很多小文件,那么保持簇大小很小就是一个不错的选择,这样的话你就空间就不会因内存碎片导致内存浪费。如果你有很多大文件,保持它更大将会提高你的系统的性能,因为它会扫描更少的块。
但是如今,磁盘容量越来越高,那么选择正确的簇大小会很小的差异。不过建议你还是保持系统默认。
还要注意,大多数文件相对较小,大文件大小虽大,但单位很小。
Andrew 补充了 Jonathan 的观点:
在空间效率而言,更小的簇大小会执行得更好。平均每个文件浪费的空间是选择 AUS(分配单元大小) 的一半。所以一个 4k 文件就会浪费浪费 2k 空间,64K 就会浪费 32k 空间。但是,Jonathan 指出现代驱动容量巨大,你一点点内存的浪费这是无关紧要的,因此它不是决定性因素(除非你使用的是固态硬盘)
比较 4k 与 64k 浪费的的平均案例(32k-2k=30k),对于 10000 个文件结果只有 300000KB 大约 300M。
相反,操作系统是如何使用内存的。假设您有一个 3k 文件需要增加 2k。对于簇为 4k 来说,数据要被分成两个块 — — 它们并不会连在一起,所以这样就会产生碎片。使用 64k 大小的簇会用更少的块保持跟踪,并且碎片更少。16x 块大小表示要跟踪的块数的 1/16
对于 windows 启动分区,使用 windows 默认设置(对于任何小于 16TB 的 NTFS 驱动器,都是 4k)
查找现有磁盘的簇大小:
fsutil fsinfo ntfsinfo X: # X 是盘符 需要管理员权限运行
磁盘阵列
RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。
RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说, RAID 是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。 从用户应用角度看,可使存储系统简单易用,管理也很便利。 由于 RAID 内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。 RAID 可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以 大大简化管理工作。
SQLServer 模糊查询方案
创建 SQLServer 全文索引
https://docs.microsoft.com/zh-cn/sql/relational-databases/search/full-text-search?view=sql-server-ver15