SQLite 的读写效率很高,有哪些使用其他数据库的理由

SQLite 的读写效率很高,有哪些使用其他数据库的理由,第1张

1、sqlite定位是嵌入式数据库,只能本地嵌入其它进程来工作,无法被远程的客户端访问,需要上层应用来处理这些事情;

2、sqlite设计上就不是为大数据量考虑的,因此别指望它存海量数据;

3、sqlite适合单线程访问,对多线程高并发的场景不适用;

4、各种数据库高级特性它都不支持,比如管理工具、分析工具、维护等等;

所以还是要根据场景选择合适的数据库,嵌入式用SQLite是相当不错的,但绝大多数场景还是要用MySQL/SqlServer/MongoDB这类的数据库。

把sqlite的源代码拿出来看看吧,里面有具体的实现的例子的。

如果是单独应用的话和其他数据库应用差不多,如果是直接在自己的程序上应用代码的话有相应的方法可以使用的,代码中都有。如果要学习资料的话可以给我留邮箱

在我几个Android应用中,我需要访问已有的数据库。这些数据库往往很大,甚至超过asset文件大约1兆字节的限制。而且在新的版本中数据库需要更新。我在网上,特别是StackOverflow看了一些文章,并做了一些试验,觉得下面的代码能基本上满足我的需求。

其主要思路是:

1 把数据库分解成几个asset文件。

2 当需要打开数据库时,如果数据库不存在,就把那几个asset文件重新合并成一个数据库文件。

3 如果数据库的版本改变了,就在onUpgrade()方法中把数据库文件删除掉。

下面是代码:

//数据库的缺省路径

private static finalString DB_PATH = "/data/data/commypackagemyapp/databases/";

private static finalString DB_NAME = "mydbdb";

private static finalint DB_VERSION = 2;

private static finalString DB_SPLIT_NAME = "mydbdb00";

private static finalint DB_SPLIT_COUNT = 3;

private SQLiteDatabasem_database;

private final Contextm_context;

/

Constructor

保存传进来的context参数以用来访问应用的asset和资源文件。

@param context

/

public MyDB(Contextcontext) {

super(context, DB_NAME, null, DB_VERSION);

thism_context = context;

}

public static MyDBopenDatabaseReadOnly(Context context) {

MyDB db = new MyDB(context);

try {

dbcreateDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

dbopenDataBase(SQLiteDatabaseOPEN_READONLY);

return db;

}

public static MyDBopenDatabaseReadWrite(Context context) {

MyDB db = new MyDB(context);

try {

dbcreateDataBase();

} catch (IOException e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

dbopenDataBase(SQLiteDatabaseOPEN_READWRITE);

return db;

}

/

创建一个空数据库,用来存储你已有的数据库。

/

public voidcreateDataBase() throws IOException{

boolean dbExist =checkDataBase();

if (dbExist) {

/

如果你的数据库的版本改变了,调用这个方法确保在onUpgrade()被调用时

传进去的是可写的数据库。

/

SQLiteDatabase db =thisgetWritableDatabase();

if (db != null) {

dbclose();

}

}

dbExist = checkDataBase();

if (!dbExist) {

以上就是关于SQLite 的读写效率很高,有哪些使用其他数据库的理由全部的内容,包括:SQLite 的读写效率很高,有哪些使用其他数据库的理由、数据库SQLite的应用,跪求高手赐教、如何使用sqlite 数据库文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9670896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存