我需要使用文本列作为我的sqlite数据库的主键.我也有可能使用哈希函数从我的文本值中获取32位/ 64位int(我想用作主键).所以我可以使用这些int哈希值而不是我的文本值作为主键.但是我需要在表格中另外存储原始文本值.
但是我读到sqlite在内部使用了rowid,所以我不知道使用哈希函数是否会有所帮助.
sqlite会在他们的页面中存储rowid或文本值(当我使用它而不是哈希值时)吗?当它存储文本值时,我认为它可以吹掉页面并使用哈希值会更好.
但我这里缺乏知识.我希望你能帮助我.
不幸的是,字符串上的任何索引(包括用作主键)都占用双倍空间。一次用于行中的值,第二次用于索引中的值。
因此,如果散列满足您的需求(您不需要排序、按范围查找),那么使用它将是一个好主意。
| 归档时间: |
|
| 查看次数: |
5611 次 |
| 最近记录: |