千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 一般的單機(jī)版軟件(不聯(lián)網(wǎng))用什么存儲數(shù)據(jù)呢?

一般的單機(jī)版軟件(不聯(lián)網(wǎng))用什么存儲數(shù)據(jù)呢?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 20:20:46 1697199646

一、一般的單機(jī)版軟件(不聯(lián)網(wǎng))用什么存儲數(shù)據(jù)

1、SQLite

SQLite是一種輕量級的關(guān)系型數(shù)據(jù)庫引擎,可以直接將數(shù)據(jù)存儲在一個文件中,無需單獨(dú)安裝數(shù)據(jù)庫服務(wù)。SQLite支持標(biāo)準(zhǔn)的SQL語言,并提供了對事務(wù)、索引、觸發(fā)器等數(shù)據(jù)庫特性的支持,適用于小規(guī)模的數(shù)據(jù)存儲和管理。

2、鍵值對存儲

鍵值對存儲是一種輕量級的非關(guān)系型數(shù)據(jù)庫,使用簡單,并且支持高速讀寫,常見的鍵值存儲有Redis、LevelDB等。但鍵值對存儲不支持SQL,其功能比較簡單,適用于小型應(yīng)用,對于關(guān)聯(lián)查詢等復(fù)雜操作支持不太理想。

3、本地文件系統(tǒng)

將數(shù)據(jù)以文本或二進(jìn)制格式的文件保存在計算機(jī)的硬盤上,可以使用常見的TXT、XML、JSON、CSV等格式。這種方式簡單易用,適用于小規(guī)模數(shù)據(jù)存儲,但數(shù)據(jù)訪問效率相對較低,對大規(guī)模數(shù)據(jù)存儲和處理不太適合。

4、內(nèi)存存儲

將數(shù)據(jù)存儲在內(nèi)存中,可以提供非??焖俚淖x寫速度和響應(yīng)時間,適用于小規(guī)模的數(shù)據(jù),如緩存和臨時數(shù)據(jù)存儲等。但由于內(nèi)存大小限制,不能存儲大規(guī)模數(shù)據(jù)且不支持永久存儲。

二、SQLite介紹

1、簡介

SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項目。它的設(shè)計目標(biāo)是嵌入式的,而且已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界知名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite名列前茅個Alpha版本誕生于2000年5月。 至2021年已經(jīng)接近有21個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。

2、工作原理

不像常見的客戶—服務(wù)器范例,SQLite引擎不是個程序與之通信的獨(dú)立進(jìn)程,而是連接到程序中成為它的一個主要部分。所以主要的通信協(xié)議是在編程語言內(nèi)的直接API調(diào)用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數(shù)據(jù)庫(定義、表、索引和數(shù)據(jù)本身)都在宿主主機(jī)上存儲在一個單一的文件中。它的簡單的設(shè)計是通過在開始一個事務(wù)的時候鎖定整個數(shù)據(jù)文件而完成的。

3、功能特性

ACID事務(wù)零配置,無需安裝和管理配置儲存在單一磁盤文件中的一個完整的數(shù)據(jù)庫數(shù)據(jù)庫文件可以在不同字節(jié)順序的機(jī)器間自由的共享支持?jǐn)?shù)據(jù)庫大小至2TB足夠小,大致13萬行C代碼,4.43M比一些流行的數(shù)據(jù)庫在大部分普通數(shù)據(jù)庫操作要快簡單,輕松的API包含TCL綁定,同時通過Wrapper支持其他語言的綁定良好注釋的源代碼,并且有著90%以上的測試覆蓋率獨(dú)立,沒有額外依賴源碼完全的開源,你可以用于任何用途,包括出售它支持多種開發(fā)語言,C,C++,PHP,Perl,Java,C#,Python,Ruby等

同時它還支持事務(wù)處理功能等等。也有人說它象Microsoft的Access,有時候真的覺得有點(diǎn)象,但是事實(shí)上它們區(qū)別很大。比如SQLite 支持跨平臺,操作簡單,能夠使用很多語言直接創(chuàng)建數(shù)據(jù)庫,而不象Access一樣需要Office的支持。如果你是個很小型的應(yīng)用,或者你想做嵌入式開發(fā),沒有合適的數(shù)據(jù)庫系統(tǒng),那么你可以考慮使用SQLite。到2013年10月17日最新版本是 3.8.1 。能在上面獲得源代碼和文檔。同時因為數(shù)據(jù)庫結(jié)構(gòu)簡單,系統(tǒng)源代碼也不是很多,也適合想研究數(shù)據(jù)庫系統(tǒng)開發(fā)的專業(yè)人士。

4、常用函數(shù)

SQLite 有許多內(nèi)置函數(shù)用于處理字符串或數(shù)字?jǐn)?shù)據(jù)。下面列出了一些有用的 SQLite 內(nèi)置函數(shù),且所有函數(shù)都是大小寫不敏感,這意味著您可以使用這些函數(shù)的小寫形式或大寫形式或混合形式。欲了解更多詳情,請查看 SQLite 的官方文檔:

SQLite COUNT 函數(shù):SQLite COUNT?聚集函數(shù)是用來計算一個數(shù)據(jù)庫表中的行數(shù)。SQLite MAX 函數(shù):SQLite MAX?聚合函數(shù)允許我們選擇某列的最大值。SQLite MIN 函數(shù):SQLite MIN?聚合函數(shù)允許我們選擇某列的最小值。SQLite?AVG?函數(shù):SQLite AVG 聚合函數(shù)計算某列的平均值。SQLite SUM 函數(shù):SQLite SUM 聚合函數(shù)允許為一個數(shù)值列計算總和。SQLite RANDOM 函數(shù):SQLite RANDOM 函數(shù)返回一個介于 -9223372036854775808 和 +9223372036854775807 之間的偽隨機(jī)整數(shù)。SQLite?ABS?函數(shù):SQLite ABS 函數(shù)返回數(shù)值參數(shù)的絕對值。SQLite UPPER 函數(shù):SQLite UPPER 函數(shù)把字符串轉(zhuǎn)換為大寫字母。SQLite LOWER 函數(shù):SQLite LOWER 函數(shù)把字符串轉(zhuǎn)換為小寫字母。SQLite LENGTH 函數(shù):SQLite LENGTH 函數(shù)返回字符串的長度。SQLite sqlite_version 函數(shù):SQLite sqlite_version 函數(shù)返回 SQLite 庫的版本。

5、語言綁定

可以從C/C++程序中使用這個庫,還可以獲得對Tcl和一些其他腳本語言的綁定。在CPAN的DBD::SQLite上有一個Perl的DBI/DBD模塊,它不是到SQLite的接口,而是包括整個SQLite數(shù)據(jù)庫引擎在其中并不需要任何額外的軟件。還有一個Python模塊叫做PySQLite。PHP從PHP5.0開始包含了SQLite,但是自5.1版之后開始成為一個延伸函式庫。SQLite能與PHP4一起工作但不包含在其中。Rails2.0.3將缺省的數(shù)據(jù)庫配置改為了SQLite 3。

延伸閱讀1:WAL恢復(fù)法簡介

WAL是關(guān)系型數(shù)據(jù)庫中用于實(shí)現(xiàn)事務(wù)性和持久性的一系列技術(shù)。數(shù)據(jù)文件(存儲著表和索引)的修改必須在這些動作被WAL記錄之后才被寫入,即在描述這些改變的日志記錄被刷到持久存儲以后,數(shù)據(jù)庫在執(zhí)行命令之前先將它記下來。比如,人們平時會寫備忘錄,記錄自己要做的事,WAL就是那個備忘錄。SQLite3可以通過命令“PRAGMA journal_mode=WAL”打開WAL模式。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
Oracle數(shù)據(jù)庫中生產(chǎn)庫、查詢庫、測試庫有什么區(qū)別?

一、Oracle數(shù)據(jù)庫中生產(chǎn)庫、查詢庫、測試庫的區(qū)別生產(chǎn)庫、查詢庫和測試庫是Oracle數(shù)據(jù)庫中不同目的的數(shù)據(jù)庫環(huán)境。生產(chǎn)庫用于實(shí)際業(yè)務(wù)運(yùn)行,查詢...詳情>>

2023-10-13 22:08:17
Database CAN中的Update Bit是什么含義?

一、Database CAN中的Update Bit的含義在Controller Area Network (CAN) 數(shù)據(jù)庫中,Update Bit 是用于表示 CAN 數(shù)據(jù)幀的更新狀態(tài)的位。在 C詳情>>

2023-10-13 21:43:36
數(shù)據(jù)庫對于同一查詢,為什么每次查詢時間會不一樣?

一、數(shù)據(jù)庫對于同一查詢,每次查詢時間會不一樣的原因1、有內(nèi)部操作查詢語句中的內(nèi)部操作,例如排序、分組、連接等,也會影響查詢的執(zhí)行時間。2...詳情>>

2023-10-13 21:22:37
sql server怎么在存儲過程中模糊查詢?

一、sql server在存儲過程中實(shí)現(xiàn)模糊查詢的方法1、Wildcard操作符Wildcard操作符:Wildcard是SQL Server支持的最基本的模糊查詢操作符,可以使...詳情>>

2023-10-13 21:00:26
用count(*)做判斷條件怎么弄的好一點(diǎn)?

一、用count(*)做判斷條件弄的好一點(diǎn)的方法1、使用索引來優(yōu)化查詢?nèi)绻樵冎猩婕暗降谋淼牧卸家烟砑恿苏_的索引,那么查詢的效率將得到大幅...詳情>>

2023-10-13 20:14:55
快速通道
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
日韩欧美亚洲一区精品 | 亚洲午夜精品一区二区 | 亚洲一区二区三区四区久久 | 亚洲一本中文日韩 | 亚洲电影一区二区 | 亚洲国产精品sss在线观看AV |