老黄历数据库压缩版
来源:互联网 发布:啄木鸟软件 编辑:程序博客网 时间:2024/05/15 23:47
上午看需求文档,经理要给日历添加黄历功能。黄历是个什么东西?洒家一时懵懂,不懂也无妨,且去问问度娘。吐槽度娘的人不少,可真没了她,还真不行。一时三刻,搜到不少黄历数据库。当下来打开一看,嗬,两百年,10多M。这APP怎么受得了?必须得减肥呀!
先削年份,1970-2036就足够了。用洒家三脚猫的SQL技能,两个delete完事,一个delete还搞不定,到底是三脚猫嘛。10M变成了4M,不行呀,还得继续减,减出骨感美来!从哪里下手呢?分析发现,这个老黄历,也没多少东西,除了宜就是忌。可是里面的条目有问题,太多了,有减的余地。人家小米日历里面最多只有5条,例如:宜嫁娶、理发、开市、出行、动土。咱们也东施效颦,5条万岁。手动修改想也不用想,程序处理,必须的!
上代码:
/** * 截取 最长保留5条 * 2015-11-6 下午4:28:22 */ private String max5(String txt){ if(TextUtils.isEmpty(txt)) return txt; String[] txt_arr = txt.split("、"); if(txt_arr.length >5){ StringBuffer sb = new StringBuffer(); sb.append(txt_arr[0]).append("、"); sb.append(txt_arr[1]).append("、"); sb.append(txt_arr[2]).append("、"); sb.append(txt_arr[3]).append("、"); sb.append(txt_arr[4]); txt = sb.toString(); } return txt; }
/** @Todo 数据压缩方法,先读取,再修改,最后更新,往下循环 */ private void convertDB() { DBDao dao = new DBDao(this); AlmanacInfo info; for(int i=49674;i>=25203;i--){ info = dao.find(i); if(info == null) break; String good = info.getGood(); String bad = info.getBad(); info.setGood(max5(good)); info.setBad(max5(bad)); dao.update(info); Log.i("wyz", "----->"+info.getId()); info = null; } }
DBDao是数据库操作类,AlmanacInfo是对黄历数据的封装类。执行效率不高,两万多条数据,半小时才处理一半。不知为什么,转换以后数据库大小不减反增,导出sql文件,然后导入重新生成db以后,大小这才发生变化。
不喜可喷,谁有更好的方法,还请不吝赐教。
附数据库下载地址
1901-2100 黄历数据库
1970-2036 黄历数据库
0 0
- 老黄历数据库压缩版
- 老黄历
- 老黄历
- 老黄历用语解释
- 有意思的程序员老黄历
- 压缩数据库
- 压缩数据库
- 数据库压缩
- 数据库压缩
- 数据库压缩
- 压缩数据库
- 解读老黄历--月日时令
- 解读老黄历--节气年神
- 解读老黄历--节气年神
- 程序员老黄历Java源码实现
- 压缩数据库日志
- 压缩数据库日志
- 压缩SQL Server数据库
- 2015年大二上-数据结构-栈(2)-链栈算法库
- mysql数据库设置不区分大小写
- Qt学习 QVariant类(转)
- 随机访问情况下的多路访问
- POJ 2418 Hardwood Species【字典树 / map】
- 老黄历数据库压缩版
- 二个数调换位置
- 可视化数据分析(二) 一个简单的柱状图的实现
- 自学php-数据基础
- C++获取数字证书的序列号
- spring mvc中处理多对多的同时存储
- 1097. Deduplication on a Linked List
- 如何开启ubuntu的SSH服务
- 类 Mat导言