我有一个sqlite BD,其表格包含一条大折线的坐标(大约2000个字符)。 BD的结构是:
CREATE TABLE "province" (
`_id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
`_line` TEXT,
);
_line的值格式为:
lat1,lon1;lat2,lon2;lat3,lon3;lat4,lon4 ...
一个小例子:
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
现在,SQLite Android数据库上的字段_line是 TEXT 类型。在我的类DAO中,我将此字符串解析为ArrayList,这是一个点列表。
我的问题是,将_line数据类型从 TEXT 更改为 BLOB ?会改善表现吗?
答案 0 :(得分:9)
在数据库本身中,TEXT和BLOB值以完全相同的方式存储。唯一的区别是报告给应用程序的类型或built-in string functions的行为。
但是,Android框架会自动在数据库编码(UTF-8)和Java字符串编码(UTF-16)之间转换TEXT值。 BLOB值不会发生这种情况。
如果将值存储为blob,则可以使用与存储它们的格式完全相同的格式从数据库中读取它们,但是您可能会冒这种格式为UTF-16,这会浪费大量空间。 / p>