標籤:bsp 之間 div java代碼 select java 沒有 http mod
最後要使用到號碼歸屬地的查詢,在網上找到一個資料庫檔案。大小有12M多,壓縮成zip也有1.9M,這樣對於一個apk的大小非常不利,後來看了一下資料庫的內容,發現有非常多冗餘。特別是中文字元佔用非常大的空間,在網上找了一種方法把一個表進行分離。分成兩個表,兩個表之間能夠使用外鍵的形式進行關聯。這裡用到的幾個表名:tb_city、mob_location、tb_mobile,終於是要把表mob_location分離成tb_city、tb_mobile在SQLite Expert上能夠使用sql語句,這裡僅僅講一些我覺得關鍵的部分,如建立表、建立欄位開啟資料庫、設定主鍵、外鍵這些都不講,對於SQLite Expert一點都不懂的朋友能夠先百度下怎樣使用。把查詢到的資料插入到指定表中。去掉反覆的
insert into tb_city(location, areacode) select location, areacode from mob_location group by location
同一時候查詢兩個表
select * from tb_city, mob_location where tb_city.[location] = mob_location.[location]
select * from tb_city, tb_mobile where tb_city.[_id] = tb_mobile.[foreign_id] and tb_mobile.[number] = 1342797
以上語句在java代碼中也是適用的,如代碼中使用:
String sql = "select * from tb_city, tb_mobile where tb_city.[_id] = tb_mobile.[foreign_id] and tb_mobile.[number] = " + num;
把兩個表查詢得到的資料插入到一個表中
insert into tb_mobile(foreign_id, number) select tb_city.[_id], mob_location.[_id] from tb_city, mob_location where tb_city.[location] = mob_location.[location]
到這裡就把表mob_location分離成tb_city、tb_mobile了,此時看下資料庫大小為16M,就把表mob_location右鍵刪除,但探索資料庫的大小沒有不論什麼改變。後來查出來刪除僅僅是把它放到緩衝。並沒有清空,須要在資料庫上右鍵->vacuum,點擊清空,再去看下大小就僅僅有3M多一點,這樣容量少了非常多,再做下zip壓縮,但壓縮的效果不是非常理想。
資料庫和代碼能夠到下面連結下載:
http://pan.baidu.com/s/1sjFWJRv
SQLite Expert表分離和解決SQLite Expert刪除表後大小不變的問題