Dav*_*vid 7 database sqlite database-performance
从没有存储varchar或其他可变长度数据的表中读取通常会更快吗?在MySQL中,这更快,因为它可以准确计算磁盘上存储行的位置.
Dav*_*man 13
这个问题在SQLite的上下文中没有意义,因为它只支持单个TEXT字段类型.这里不存在"固定宽度"与"可变长度"的区别.
虽然SQLite允许您将字段定义为具有某种类型,但所有这些(最多)设置该字段对存储模糊数据时要使用的类型的偏好(例如,"3"是否将存储为INTEGER,REAL,或TEXT).您仍然可以在任何SQLite字段中存储任何类型的数据,无论其类型如何.
具体涉及CHAR与VARCHAR,http://www.sqlite.org/datatype3.html 告诉我们:
如果列的声明类型包含任何字符串"CHAR","CLOB"或"TEXT",则该列具有TEXT亲和性.请注意,VARCHAR类型包含字符串"CHAR",因此分配了TEXT亲和性.
由于SQLite仅使用可变长度记录,我猜他们在行碰巧具有相同长度时没有实现修复宽度查找优化.
正如Dave指出的那样,人们仍然可以在INT字段中存储文本.由于SQLite从不截断数据,这意味着SQLite允许看似固定的宽度列(如INT)来存储可变长度数据.因此,实现固定宽度查找优化是不可能的.
| 归档时间: |
|
| 查看次数: |
4366 次 |
| 最近记录: |