@老虎会游泳,这闭包表本身,和你的
KEY (这俩节点距离, 祖先节点)
或KEY (这俩节点距离, 后代节点)
也差不多大啊,扫索引所有行也快不到哪儿去吧。。而且,对于问题三(获取某节点所有祖先),这 1170W 的表还是要扫 390W 行:
SELECT 祖先节点 FROM 闭包表 WHERE /* 缺失:祖先节点 = ? AND */ 后代节点 = '...' ORDER BY 距离 DESC
老虎会游泳:如果索引只有两个键,就是遍历两个键,对其值的数量进行求和。
无名啊:你是说,一百行的表,对其中一个值域大小为2的字段建索引,该索引只有两条记录?每条记录指向50个主键ID?(假设均匀分布)
老虎会游泳:对呀,难道不是吗,B+树的一个节点不是能存很多指针吗?除非一个节点存不下,才会需要存储在相邻节点吧。
我后面找到的答案是:不是
下面这张图出自这个博客。可以看到:
- 表格前 7 行是
Record Header
,无论是聚集/非聚集的叶子/非叶子页上的每个记录,都会有这个 5+ 字节的记录头,先不管。- 表格后 2 行,表明二级索引的叶子页上,只会存着 索引键 和 主键,没有你说的【合并相同的索引键为一行记录】的结构
@TabKey9,离线版的啥?
tinyjpg
吗?为啥不试试Quality = 70
的MozJPEG
呢?
@老虎会游泳,加过
explain
了,就是我说的这些情况这个索引,基本就变成 1170W 的表了。。
先 @ 万能的 @老虎会游泳
@罐子,另外,大量图片批量转也不建议使用
squoosh
因为我和本地的
avifenc
对比,参数相同的情况下,前者的耗时大概是后者的 5~6 倍感觉
wasm
还不能像 Native 应用那样利用好 CPU 性能
@罐子,不是
squoosh
,是tinyjpg
但 6 楼的测试,感觉
tinyjpg
吸引力不是很大:
- 没有甩其他工具几条街(比如
squoosh
上avif
默认参数压缩浣熊图,肉眼质量轻微损失情况下,能减少 90% 体积)jpg
式微了,webp
、heif
、avif
是更好的选择有没有离线版本,不重要了。。
@MINE,@罐子,我拿 https://squoosh.app/ 首页的浣熊图试了试,
差不多大小的情况下(原图 2.66 MB,
tinyjpg
768 KB,squoosh.app
的Quality
调成 70 后 742 KB),感觉tinyjpg
和MozJPEG
没啥区别。。
你想压成啥格式啊?
- 无损压缩的
JPG
(大概减少 20% 体积):JPEG XL (官网有提供编译好的命令行工具)webp
(应该较为通用了):cwebp
heif
(好像推广不是很好):heif-enc
avif
(大概减少 90% 体积):avifenc
集成很多图片格式和功能的命令行工具:
ImageMagick
、ffmpeg
浏览器端测试各种图片格式压缩效果的工具(或用于命令行批量转换):https://squoosh.app/
@tasy5kg,
H264
H265
,好像都是以yuv
为基础的吧
@rkonfj,没怎么迁移过数据。问一下,文件级别的拷贝(附带属主、权限等),会有啥问题吗?
@tasy5kg,
webp
转码好像不怎么耗时间
heif
和avif
,甚至是HEVC
或AV1
高质量硬件转码更有意义
@老虎会游泳,WSL2是自己申请个大文件来用EXT4嘛?还是继续用宿主机NTFS?
@tasy5kg,刚翻邮箱,高通给ID了
但我这下 Adreno SDK 5.0 (Windows) 太慢,你也可以下来试试:https://developer.qualcomm.com/qfile/6153/adrenosdk_5_0.zip