无论是操作系统,还是数据库,都是有数据块这个概念,如下文章讲述的是数据库的数据块,
《Oracle中怎么导出索引数据块?》
《新增字段在数据块中的体现》
如下是来自eygle博客中的一篇文章,虽然很久远,但是讲解了Windows中如何看数据块大小的功能,
http://www.eygle.com/archives/2006/11/windows_tools_fsutil.html
其实从Windows Xp开始,Microsoft提供了一个工具fsutil可以用来查看文件系统的块大小,经过这个工具也可以用在Windows 2000平台上,
D:\>fsutil fsinfo ntfsinfo c: NTFS 卷序列号 : 0x388c89188c88d1b4 版本 : 3.1 区数量 : 0x00000000013fe599 簇总数 : 0x000000000027fcb3 可用簇 : 0x0000000000011e43 保留总数 : 0x0000000000000060 每个扇区字节数 : 512 每个簇字节数 : 4096 每个 FileRecord 段的字节数 : 1024 每个 FileRecord 段的簇数 : 0 Mft 有效数据长度 : 0x00000000051cc000 Mft 起始 Lcn : 0x00000000000c0000 Mft2 起始 Lcn : 0x000000000013fe59 Mft 区域起始 : 0x0000000000221960 Mft 区域结尾 : 0x000000000022a280
这里的"每个簇字节数" 4096就是Windows上的文件系统块大小。这个大小可以在格式化时定义,我们从format的命令可以看到Windows上不同文件系统可以使用的块大小,
D:\>format /? 格式化磁盘以供 Windows XP 使用。 FORMAT volume [/FS:file-system] [/V:label] [/Q] [/A:size] [/C] [/X] FORMAT volume [/V:label] [/Q] [/F:size] FORMAT volume [/V:label] [/Q] [/T:tracks /N:sectors] FORMAT volume [/V:label] [/Q] FORMAT volume [/Q] volume 指定驱动器(后面跟一个冒号)、装入点 或卷名。 /FS:filesystem 指定文件系统类型(FAT、FAT32 或 NTFS)。 /V:label 指定卷标。 /Q 执行快速格式化。 /C 仅适于 NTFS: 默认情况下,将压缩在该新建卷上 创建的文件。 /X 如果必要,先强制卸下卷。那时,该卷所有 已打开的句柄不再有效。 /A:size 替代默认配置单位大小。极力建议您在一般状况下使用 默认设置。 NTFS 支持 512、1024、2048、4096、8192、16K、32K、 64K。 FAT 支持 512、1024、2048、4096、8192、16K、32K、 64k,(128k、256k 用于大于 512 字节的扇区) 。 FAT32 支持 512、1024、2048、4096、8192、16k、32k、 64k,(128k 、256k 用于大于 512 字节的扇区)。 注意 FAT 及 FAT32 文件系统对卷上的群集数量有以下限制: FAT: 群集数量 <= 65526 FAT32: 65526 < 群集数量 < 4177918 如果判定使用指定的群集大小无法满足以上需求,格式 化将立即停止。 NTFS 压缩不支持大于 4096 的分配单元。 /F:size 指定要格式化的软盘大小(1.44) /T:tracks 为磁盘指定每面磁道数。 /N:sectors 指定每条磁道的扇区数。
当然更简单,通过在文件系统上创建一个小文件,观察其分配空间也可以得到系统最小的IO分配单元。