新app得推倒重来了

sqlite性能差?建index了吧,建了之后都是毫秒出结果的

连fts都不到一毫秒SQLite 4.0 as a Production Database: 2025 Benchmarks and Pitfalls | Markaicode

SQLite 不是为词典这种高密度、顺序扫描场景优化的,自己设计的格式会更快。

确实是,自己的格式更快更小。我只是觉得lz说的sqlite性能差导致不够用的说法存疑

一次性提取几十万词头,SQLite 在这种场景下根本不够看。你自己实验下就知道了,这个和索引没关系了,跟存储词头的物理布局强关联。SQLite 的页结构导致它没法支持块压缩, 在需要顺序大块读取的场景下,支持块压缩的自定义词典格式,读取速度可以接近磁盘极限。

这个正是我没有搞明白的部分,为什么需要这么大量的词头。对于lz这种普通查词的app来说,词头一次几十个一般就够用了。不明白这个使用场景

如果是指这个,这是sqlite column带个collation就能解决的事情

用 collation 也一样,逻辑顺序和物理顺序不一致,读取速度快不起来。前面的讨论都是基于复刻物书堂的使用场景,如果不追求速度的话,用 sqlite 就可以了。

明白了,我去研究研究物书堂情况

麻煩去用下物書堂,他那個結果欄都沒有顯式分頁。你用sqlite肯定複製不了这种特性。我現在大致實現了,當然是用的自己的格式,看另一個貼子。

我也写了一个,欢迎交流。
https://forum.freemdict.com/t/topic/44435