From 5e1538d85bde33f7f31497927653626ebf4933d6 Mon Sep 17 00:00:00 2001
From: Omooo <869759698@qq.com>
Date: Tue, 15 Jan 2019 19:09:20 +0800
Subject: [PATCH] update SQLite
---
blogs/Android/Serializable 与 Parceable.md | 8 +++++
blogs/Android/存储优化.md | 18 ++++++++++-
blogs/SQLite.md | 34 ++++++++++++++++++---
images/{ => Android}/SQLite.png | Bin
images/Android/存储优化.png | Bin 0 -> 61026 bytes
5 files changed, 55 insertions(+), 5 deletions(-)
create mode 100644 blogs/Android/Serializable 与 Parceable.md
rename images/{ => Android}/SQLite.png (100%)
create mode 100644 images/Android/存储优化.png
diff --git a/blogs/Android/Serializable 与 Parceable.md b/blogs/Android/Serializable 与 Parceable.md
new file mode 100644
index 0000000..ad672a2
--- /dev/null
+++ b/blogs/Android/Serializable 与 Parceable.md
@@ -0,0 +1,8 @@
+---
+Serializable 与 Pracelable
+---
+
+#### 目录
+
+1. 思维导图
+2.
\ No newline at end of file
diff --git a/blogs/Android/存储优化.md b/blogs/Android/存储优化.md
index d56eb27..048146a 100644
--- a/blogs/Android/存储优化.md
+++ b/blogs/Android/存储优化.md
@@ -19,6 +19,8 @@
#### 思维导图
+![](https://i.loli.net/2019/01/15/5c3dbef17beaf.png)
+
#### Android 的存储基础
##### Android 分区
@@ -113,4 +115,18 @@ Android 系统可以通过 df 命令来查看分区情况,常见的分区如
虽然 ContentProvider 为应用程序之间的数据共享提供了很好的安全机制,但是如果 ContentProvider 是 exported,当支持执行 SQL 语句时就需要注意 SQL 注入的问题。另外如果我们传入的参数是一个文件路径,然后返回文件的内容,这个时候也要校验合法性,不然整个应用的私有数据就可能被别人拿到,在 intent 传递参数的时候可能也会有这个问题。
- 总的来说,ContentProvider 这套方案实现相对比较笨重,适合传输大的数据。
\ No newline at end of file
+ 总的来说,ContentProvider 这套方案实现相对比较笨重,适合传输大的数据。
+
+- SQLite
+
+ 总的来说,通过引入 ORM,可以大大的提升我们的开发效率;通过 WAL 模式和连接池,可以提高 SQLite 的并发性能;通过正确的建立索引,可以提升 SQLite 的查询速度;通过调整默认页大小和缓存大小,可以提升 SQLite 的整体性能。
+
+ 详见:[SQLite](https://github.com/Omooo/Android-Notes/blob/master/blogs/SQLite.md)
+
+#### 参考
+
+[存储优化(上):常见的数据存储方法有哪些?](https://time.geekbang.org/column/article/76677)
+
+[存储优化(中):如何优化数据存储?](https://time.geekbang.org/column/article/76985)
+
+[存储优化(下):数据库SQLite的使用和优化](https://time.geekbang.org/column/article/77546)
\ No newline at end of file
diff --git a/blogs/SQLite.md b/blogs/SQLite.md
index 1371ac3..b505a07 100644
--- a/blogs/SQLite.md
+++ b/blogs/SQLite.md
@@ -19,11 +19,12 @@ Android 数据持久化之 SQLite
- 优化建议
- 事务
- 建立索引
+ - 页大小和缓存大小
3. 参考
#### 思维导图
-![](https://raw.githubusercontent.com/Omooo/Android-Notes/master/images/SQLite.png)
+![](https://i.loli.net/2019/01/15/5c3dbf22234b0.png)
#### 基本使用
@@ -89,11 +90,30 @@ SQLite 默认是支持多进程并发操作的,它通过文件锁来控制多
为了进一步提高并发性能,我们还可以打开 WAL(Write-Ahead Logging)模式。WAL 模式会将修改的数据单独写到一个 WAL 文件中,同时也会引入 WAL 日志文件锁。通过 WAL 模式读和写可以完全的并发执行,不会相互阻塞。
+```java
+db.enableWriteAheadLogging(); //返回 false / true
```
-PRAGMA schema.journal_mode = WAL
+
+如果开启了 WAL 模式,开启事务要使用 benginTransactionNonExclusive(),注意捕获异常,源码如下:
+
+```java
+ /**
+ *
+ * db.beginTransactionNonExclusive();
+ * try {
+ * ...
+ * db.setTransactionSuccessful();
+ * } finally {
+ * db.endTransaction();
+ * }
+ *
+ */
+ public void beginTransactionNonExclusive() {
+ beginTransaction(null /* transactionStatusCallback */, false);
+ }
```
-**但是需要注意的是,写之间仍然不能并发。**如果出现多个写并发的情况,依然有可能出现 SQLiteDatabaseLockedException,这个时候可以让应用捕获这个异常,然后等待一段时间后重试。
+但是需要注意的是,**写之间仍然不能并发。**如果出现多个写并发的情况,依然有可能出现 SQLiteDatabaseLockedException,这个时候可以让应用捕获这个异常,然后等待一段时间后重试。
总的来说,通过连接池与 WAL 模式,可以很大程度上增加 SQLite 的读写并发,大大减少由于并发导致的等待耗时,建议在应用中尝试开启。
@@ -190,7 +210,13 @@ SQLite 默认会为每个插入、更新操作创建一个事务,并且在每
数据库就像一个小文件系统,事实上它内部也有页和缓存的概念。
-对于 SQLite 的 DB 文件来说,页是最小的存储单位。跟文件系统的页缓存一样,SQLite 会将读过的页缓存起来,用来加快下一次读取速度,页大小默认是 1024 Byte,缓存大小默认是 1000 页。建数据库的时候,就提前选择 4KB 作为默认的 page size 以获得更好的性能。
+对于 SQLite 的 DB 文件来说,页是最小的存储单位。跟文件系统的页缓存一样,SQLite 会将读过的页缓存起来,用来加快下一次读取速度,页大小默认是 1024 Byte,缓存大小默认是 1000 页。如果使用 4KB 的 pageSize 性能能提升 5%~10% 左右,所以在建数据库的时候,就提前选择 4KB 作为默认的 page size 以获得更好的性能。
+
+```java
+db.setPageSize(1024 * 4);
+```
+
+
##### 其他优化
diff --git a/images/SQLite.png b/images/Android/SQLite.png
similarity index 100%
rename from images/SQLite.png
rename to images/Android/SQLite.png
diff --git a/images/Android/存储优化.png b/images/Android/存储优化.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ff4ffb2ae58aa3a05bcc3db2a9b9f1759a709d8
GIT binary patch
literal 61026
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