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; 来查看当前是否有访问在对文件进行锁定

相关推荐
如竟没有火炬2 分钟前
恢复二叉搜索树
数据结构·数据库·python·leetcode·动态规划
星川皆无恙6 分钟前
基于BERT+LSTM+CRF与知识图谱的医疗智能问答系统实战:Neo4j图数据库+实体识别+意图分析完整项目
数据库·人工智能·深度学习·bert·lstm·知识图谱·neo4j
Upsy-Daisy8 分钟前
Hermes Agent 学习笔记 03:CLI 与 TUI 使用体验,让 Agent 真正进入终端工作流
服务器·前端·数据库
数据库小学妹10 分钟前
MySQL并行复制原理与调优实战:LOGICAL_CLOCK到WRITESET_SESSION全链路优化
数据库·经验分享·mysql·性能优化·dba
周杰伦fans11 分钟前
深入浅出AutoCAD .NET二次开发:HostApplicationServices完全解析
数据库·.net
AQin101212 分钟前
【对比向】细算“成本”——Hive vs. Doris
大数据·数据库·hive·doris·实时数仓
承渊政道12 分钟前
【MySQL数据库学习】MySQL基本查询(上)
linux·数据库·学习·mysql·bash·数据库开发·数据库系统
学计算机的计算基12 分钟前
MySQL 性能调优面试复习:Explain、索引、慢查询、缓存和架构优化
java·数据库·笔记·mysql
运维行者_14 分钟前
如何为您的企业选择最佳网络监控工具
大数据·运维·服务器·网络·数据库
刃神太酷啦18 分钟前
MySQL 库表操作 +数据类型+ 基础概念全梳理----《Hello MySQL!》(2)
java·c语言·数据库·c++·vscode·mysql·adb