谈数据库索引和Sqlite中索引的使用
摘要:要使用索引对数据库的数据操作进行优化,那必须明确几个问题:1.什么是索引2.索引的原理3.索引的优缺点4.什么时候需要使用索引,如何使用围绕这几个问题,来探究索引在数据库操作中所起到的作用。1.数据库索引简介回忆一下小时候查字典的步骤,索引和字典目录的概念是一致的。字典目录可以让我们不用翻整本字典就找到我们需要的内容页数,然后翻到那一页就可以。索引也是一样,索引是对记录按照多个字段进行排序的一种展现。对表中的某个字段建立索引会创建另一种数据结构,其中保存着字段的值,每个值还包括指向与它相关记录的指针。这样,就不必要查询整个数据库,自然提升了查询效率。同时,索引的数据结构是经过排序的,因而可以对
阅读全文
posted @
2013-10-29 14:05
Rosepotato
阅读(1847)
推荐(0)
在SQLite中使用索引优化查询速度
摘要:在进行多个表联合查询的时候,使用索引可以显著的提高速度,刚才用SQLite做了一下测试。建立三个表:create table t1(id integer primary key,num integer not null,word1 text not null,word2 text not null);create table t2(id integer primary key,num integer not null,word1 text not null,word2 text not null);create table t3(id integer primary key,num integ
阅读全文
posted @
2013-10-29 14:04
Rosepotato
阅读(1081)
推荐(0)
SQLite支持的SQL数据操作
摘要:事务处理Posted on2013 年 1 月 1 日by林溪事务为一组SQL命令的集合,这些SQL命令在执行时不可进行分割,即要么全部执行这些SQL命令,要么一个都不进行执行,事务操作不允许出现执行SQL命令集合中的一部分命令。事务的提交事务的提交是指对这个事务中的SQL命令全部执行,更新数据库的状态。下面的事务提交完成后会向数据库中增加13个数据记录。view plaincopy to clipboardprint?BEGINTRANSACTION;INSERTINTOstudentsVALUES(0,'ZhangLincea',13,'F','19
阅读全文
posted @
2013-10-29 12:31
Rosepotato
阅读(648)
推荐(0)
left (outer) join , right (outer) join, full (outer) join, (inner) join, cross join 区别
摘要:通俗的讲:AleftjoinB的连接的记录数与A表的记录数同ArightjoinB的连接的记录数与B表的记录数同AleftjoinB等价BrightjoinAtableA:Field_K,Field_A1a3b4ctableB:Field_K,Field_B1x2y4zselecta.Field_K,a.Field_A,b.Field_K,b.Field_Bfromaleftjoinbona.Field_K=b.Field_KField_KField_AField_KField_B----------------------------------------1a1x3bNULLNULL4c4
阅读全文
posted @
2013-10-28 20:52
Rosepotato
阅读(581)
推荐(0)
深入理解Android内存管理原理(六)
摘要:一般来说,程序使用内存的方式遵循先向操作系统申请一块内存,使用内存,使用完毕之后释放内存归还给操作系统。然而在传统的C/C++等要求显式释放内存的编程语言中,记得在合适的时候释放内存是一个很有难度的工作,因此Java等编程语言都提供了基于垃圾回收算法的内存管理机制:垃圾内存回收算法常见的垃圾回收算法有引用计数法(Reference Counting)、标注并清理(Mark and Sweep GC)、拷贝(Copying GC)和逐代回收(Generational GC)等算法,其中Android系统采用的是标注并删除和拷贝GC,并不是大多数JVM实现里采用的逐代回收算法。由于几个算法各有优缺
阅读全文
posted @
2013-10-26 22:52
Rosepotato
阅读(885)
推荐(0)
内存管理-常见内存泄露-(5)
摘要:尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/13017999此文承接我的另一篇文章:Android进程的内存管理分析首先了解一下dalvik的Garbage Collection:如上图所示,GC会选择一些它了解还存活的对象作为内存遍历的根节点(GC Roots),比方说thread stack中的变量,JNI中的全局变量,zygote中的对象(class loader加载)等,然后开始对heap进行遍历。到最后,部分没有直接或者间接引用到GC Roots的就是需要回收的垃圾,会被GC回收掉。如下图蓝色部分。Java内存
阅读全文
posted @
2013-10-26 16:18
Rosepotato
阅读(856)
推荐(0)
Android 内存管理分析(四)
摘要:尊重原创作者,转载请注明出处:http://blog.csdn.net/gemmem/article/details/8920039最近在网上看了不少Android内存管理方面的博文,但是文章大多都是就单个方面去介绍内存管理,没有能全局把握,缺乏系统性阐述,而且有些观点有误。这样对Android内存管理进行局部性介绍,很难使读者建立系统性概念,无法真正理解内存管理,对提高系统优化和系统稳定性分析方面的能力是不够的。 我结合自己的一些思考和理解,从宏观层面上,对内存管理做一个全局性的介绍,在此与大家交流分享。首先,回顾一下基础知识,基础知识是理解系统机制的前提和关键:1、 进程的地址空间在32.
阅读全文
posted @
2013-10-26 12:04
Rosepotato
阅读(626)
推荐(0)
Android 之 内存管理-查看内存泄露(三)
摘要:概述在android的开发中,要时刻主要内存的分配和垃圾回收,因为系统为每一个dalvik虚拟机分配的内存是有限的,在google的G1中,分配的最大堆大小只有16M,后来的机器一般都为24M,实在是少的可怜。这样就需要我们在开发过程中要时刻注意。不要因为自己的代码问题而造成OOM错误。JAVA的内存管理大家都知道,android应用层是由java开发的,android的davlik虚拟机与jvm也类似,只不过它是基于寄存器的。因此要了解android的内存管理就必须得了解java的内存分配和垃圾回收机制。在java中,是通过new关键字来为对象分配内存的,而内存的释放是由垃圾收集器(GC)来
阅读全文
posted @
2013-10-26 11:18
Rosepotato
阅读(340)
推荐(0)
Android 内存管理(二)
摘要:很多开发者都是从j2me或j2ee上过来的,对于内存的使用和理解并不是很到位,Android开发网本次给大家一些架构上的指导,防止出现豆腐渣工程的出现。Android作为以Java语言为主的智能平台对于我们开发一些高性能和质量的软件来说了解Android程序内存管理机制是必须的。Android的Dalvik VM在基础方面和SUNJVM没有什么大的区别仅仅是字节码的优化,我们要知道什么时候用gc什么时候用recycle以及到底用不用finalization,因为Java对内存的分配只需要new开发者不需要显示的释放内存,但是这样造成的内存泄露问题的几率反而更高。 1.对于常规开发者而言需要了解
阅读全文
posted @
2013-10-26 10:49
Rosepotato
阅读(260)
推荐(0)
正确认识Android的内存管理机制,合理关闭进程 (一)
摘要:随着大家收货后会有很多乐粉晒内存,为啦方便大家,在网上搜集了一些相关Andriod管理的相关机制合理管理内存,整理下发个贴。首先要知道Android系统是基于Linux 2.6内核开发的开源操作系统(linux是啥都不知道自己去百度吧),而linux系统的内存管理有其独特的动态存储管理机制。不过Android系统对Linux的内存管理机制进行了优化,Linux系统会在进程活动停止后就结束该进程,而Android把这些进程都保留在内存中,直到系统需要更多内存为止。这些保留在内存中的进程通常情况下不会影响整体系统的运行速度,并且当用户再次激活这些进程时,提升了进程的启动速度。如果你懂java,就会
阅读全文
posted @
2013-10-26 10:35
Rosepotato
阅读(1909)
推荐(0)
谈谈Runtime类中的freeMemory,totalMemory,maxMemory等几个方法
摘要:最近在网上看到一些人讨论到java.lang.Runtime类中的freeMemory(),totalMemory(),maxMemory ()这几个方法的一些问题,很多人感到很疑惑,为什么,在java程序刚刚启动起来的时候freeMemory()这个方法返回的只有一两兆字节,而随着 java程序往前运行,创建了不少的对象,freeMemory()这个方法的返回有时候不但没有减少,反而会增加。这些人对freeMemory()这 个方法的意义应该有一些误解,他们认为这个方法返回的是操作系统的剩余可用内存,其实根本就不是这样的。这三个方法反映的都是java这个进程的内存情 况,跟操作系统的内存根本
阅读全文
posted @
2013-10-25 23:12
Rosepotato
阅读(235)
推荐(0)
UNICODE,GBK,UTF-8区别
摘要:简单来说,unicode,gbk和大五码就是编码的值,而utf-8,uft-16之类就是这个值的表现形式.而前面那三种编码是一兼容的,同一个汉字,那三个码值是完全不一样的.如"汉"的uncode值与gbk就是不一样的,假设uncode为a040,gbk为b030,而uft-8码,就是把那个值表现的形式.utf-8码完全只针对uncode来组织的,如果GBK要转UTF-8必须先转uncode码,再转utf-8就OK了.详细的就见下面转的这篇文章.谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词这是一篇程序员写给程序员的趣味读物。所谓趣味是指可以比较轻松地了解一些原来不清楚的概
阅读全文
posted @
2013-10-25 23:06
Rosepotato
阅读(308)
推荐(0)
HashMap和Hashtable的区别(1)
摘要:导读:1 HashMap不是线程安全的 hastmap实现了map接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。2 HashTable是线程安全的一个Collection。HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口,主要区别在于HashMap允许空(null)键值(key),由于非线程安全,效率上可能高于Hashtable。HashMap允许将null作为一个entry的key或者value,而Hashtable不允许。H
阅读全文
posted @
2013-10-23 10:52
Rosepotato
阅读(241)
推荐(0)
Hashtable与HashMap区别(2)
摘要:提到hashtable,先要澄清两个问题hashCode与equals().Hashtable有容量和加载因子,容量相当于桶,因子相当于桶里的对象.而hashCode我们可以把它理解为桶的序号,所以HashCode相同的,即它们在同一个桶里,这两上对象就在同一个桶里,这时候如果他们还equals()的话,那么这两个对象就是一样的.而如果他们的hashCode不一样,即他们不在同一个桶里,那么这两个对象肯定是不一样的. 所以我们在用hashtable进行存储对象时要重写他们的hashCode与equals(),否则会出现很多重复的对象. hashtable与hashMap最大的区别是,hasht
阅读全文
posted @
2013-10-23 10:51
Rosepotato
阅读(254)
推荐(0)
JSON 之JAVA 解析
摘要:一、 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。Json建构于两种结构:1、“名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。 如:{“name”:”jackson”,“age”:100}2、值的有序列表(An ordered list of values)。
阅读全文
posted @
2013-10-22 23:11
Rosepotato
阅读(217)
推荐(0)
Eclipse中10个最有用的快捷键组合
摘要:一个Eclipse骨灰级开发者总结了他认为最有用但又不太为人所知的快捷键组合。通过这些组合可以更加容易的浏览源代码,使得整体的开发效率和质量得到提升。 1. ctrl+shift+r:打开资源 这可能是所有快捷键组合中最省时间的了。这组快捷键可以让你打开你的工作区中任何一个文件,而你只需要按下文件名或mask名中的前几个字母,比如applic*.xml。美中不足的是这组快捷键并非在所有视图下都能用。2. ctrl+o:快速outline 如果想要查看当前类的方法或某个特定方法,但又不想把代码拉上拉下,也不想使用查找功能的话,就用ctrl+o吧。它可以列出当前类中的所有方法及属性,你只需输入你想
阅读全文
posted @
2013-10-22 23:05
Rosepotato
阅读(247)
推荐(0)