TEXT vs BLOB在Android SQLite上的coordiantes值

alb*_*NET 6 sqlite performance android text blob

我有一个sqlite BD,其中包含一个包含大折线坐标的表(大约2000个字符).BD的结构是:

CREATE TABLE "province" (
    `_id`   INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    `_line` TEXT,
);
Run Code Online (Sandbox Code Playgroud)

_line的值格式为:

lat1,lon1;lat2,lon2;lat3,lon3;lat4,lon4 ...
Run Code Online (Sandbox Code Playgroud)

一个小例子:

28.164033,-15.709076;28.151925,-15.699463;28.134972,-15.703583;28.121650,-15.707703;28.107115,-15.704956;28.079250,-15.713196;28.067133,-15.735168
Run Code Online (Sandbox Code Playgroud)

sqlite text vs blob

现在,field _line是SQLite Android数据库上的TEXT类型.在我的类DAO中,我将此字符串解析为ArrayList,这是一个点列表.

我的问题是,是否会将_line数据类型从TEXT更改为BLOB?会提高性能吗?

CL.*_*CL. 10

在数据库本身中,TEXT和BLOB值以完全相同的方式存储.唯一的区别是报告给应用程序的类型或内置字符串函数的行为.

但是,Android框架将自动在数据库编码(UTF-8)和Java字符串编码(UTF-16)之间转换TEXT值.BLOB值不会发生这种情况.

如果将值存储为blob,则可以使用与存储它们的格式完全相同的格式从数据库中读取它们,但是您可能会冒这种格式为UTF-16,这会浪费大量空间.