SQLite需要初始化参数,怎么调优-- SQLite 五脏俱全系列 (1)

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共3400人左右 1 + 2 + 3 + 4 +5 + 6 + 7 + 8 +9)(1 2 3 4 5 6 7 8群已经爆满 9群 300+,开10群PolarDB专业学习群110+ 针对 SQLite 我们将建立一个新的群sqlite的群,如果需要请加群的时候单独告知)

去年SQLlite的几个文章爆火,我都没有想到几万的阅读量。今年我们也新开一个系列叫SQLite知多少,我们继续深入到SQLite的使用问题的探究中,这是一个长期的系列,目前已经写到 4 期,我们将从,安装,版本,使用,SQL,运维,压力测试,使用中程序的编制注意事项等等,深入SQLite 希望这个系列能帮助你

SQLite 开发中的数据库开发规范 --如何提升业务系统性能避免基础BUG

基于SQLite如何设计应用程序,拆散,散,还的散!

SQLite3 打败了 PostgreSQL 终究还是没能挽回--世界最大装机量是真的

果不其然,SQLite的研究引来一堆人的关注,上一篇爆了

我们此次选择的版本是3.45.3,这个版本在适应的系统的广泛性都要比新的版本要好,并且一些我们需要的核心技术的更新也都做了,BUG的FIX也做了。所以这个版本将作为我们的研究和使用的核心版本。

这里我们再次重申这个版本的特点

1 引入了JSONB的格式,通过JOSN预处理成树状存储结构,避免了重复解析,读取和处理JSON的速度比以前快了数倍。

2 优化了索引的选择,让数据库可以选择更高效的索引而不是因为优化的时间的原因,选择一个低效的索引。

3 修复了 upsert的语法错误

4 修复了sum() 函数计算时的数据错误问题

5 修改了默认的页数,支持windows控制台 UTF-8的字符显示,对中文更加友好。

5 使用后,由于一些更先进的语句处理方案,导致内存的使用变大。

从下本集开始我们对这个版本的SQL语句开始进行研究。
SQLite语法

本集我们来回顾一下,基本的操作为我们后续的研究和使用做铺垫。

1 如何打开sqlite

直接运行sqlite 并且后面带有要打开或初始化的数据库的文件名字即可。

go 复制代码
anaconda-ks.cfg       sqldiff  sqlite3_analyzer                    sqlite-tools-win-x64-3450300.zip
net_database3453.sql  sqlite3  sqlite-tools-linux-x64-3450300.zip

[root@sqllite ~]# sqlite3 net_database3453.sql
SQLite version 3.26.0 2018-12-01 12:34:55
Enter ".help"for usage hints.
sqlite> 
sqlite> 
sqlite> 
sqlite> PR
PRAGMA     PRECEDING  PRIMARY    
sqlite> PRAGMA journal_mode;
wal
sqlite> PRAGMA synchronous;
2
sqlite> PRAGMA busy_timeout;
0
sqlite> PRAGMA cache_size;
-2000
sqlite> PRAGMA foreign_keys;
0
sqlite>

如果不清楚这块内容可以翻看去年的文章的内容,这里我们需要在执行的时候初始化这些参数
初始化参数

这里我们将参数写入到 init.sql 然后通过 -init 的初始化命令来将这些信息打入到数据库中,每次启动我们就能获得对应的初始化参数要的效果。

今天我们学习一个新的知识点,如何获取当前有多少链接连入到数据库中,因为SQLITE本身不是一个数据库的模型,他是一个文件的模型,这里就不要想着直接通过类似 session的查询来看数据库有多少链接了。这里只能通过外部的文件模式来看如下面在LINUX中运行如下命令。

lsof -r 2 /root/net_database3453.sql
数据库查看连接情况

在Window中可以通过

使用 Windows 资源监视器 (最直观) 如果你想看哪些进程正在占用你的 .db 文件:

按下 Win + R,输入 resmon 并回车。

点击 "CPU" 选项卡。

在右侧的 "关联的句柄" 搜索框中,输入你的数据库文件名(例如 my_database.db)。

系统会列出所有当前正在打开该文件的进程(PID)和程序名
image

另外如果进入数据库可以通过 PRAGMA lock_status; 来查看当前是否有访问在对文件进行锁定

相关推荐
2301_781571427 小时前
Golang格式化输出占位符都有什么_Golang fmt占位符教程【通俗】
jvm·数据库·python
养肥胖虎7 小时前
RAG学习笔记(3):区分数据库检索与RAG的使用场景
数据库·ai·rag
_ku_ku_8 小时前
数据库系统原理 · 数据库应用开发 · 自学总结
数据库
No8g攻城狮9 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库
山峰哥9 小时前
SQL慢查询调优实战:从全表扫描到索引覆盖的完整复盘
前端·数据库·sql·性能优化
代码中介商9 小时前
Redis入门:5大数据类型全解析
数据库·redis·缓存
渣渣盟10 小时前
数据库设计范式详解(纯小白版)
数据库·oracle·软考·数据库工程师
夜雪闻竹11 小时前
Cursor 对话导入:解析 SQLite 里的宝藏
数据库·sqlite·ai编程
hhb_61812 小时前
PL/SQL核心技术难点梳理与实战应用案例解析
数据库·sql
m0_4708576412 小时前
PHP怎么实现工厂模式_Factory模式编写指南【指南】
jvm·数据库·python