資源描述:
《windows下sqlite安裝使用和性能優(yōu)化及設(shè)置》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、windows下sqlite安裝使用和性能優(yōu)化及設(shè)置sqlite是嵌入式SQL數(shù)據(jù)庫引擎SQLite(SQLiteEmbeddableSQLDatabaseEngine)的一個擴(kuò)展。SQLite是一個實現(xiàn)嵌入式SQL數(shù)據(jù)庫引擎小型C語言庫(Clibrary),實現(xiàn)了獨立的,可嵌入的,零配置的SQL數(shù)據(jù)庫引擎。特性包括:事務(wù)操作是原子,一致,孤立,并且持久的,即使在系統(tǒng)崩潰和電源故障之后。零配置——不需要安裝和管理。實現(xiàn)了絕大多數(shù)SQL92標(biāo)準(zhǔn)。整個數(shù)據(jù)庫存儲在一個單一的文件中。數(shù)據(jù)庫文件可以在不同字節(jié)序的機(jī)器之間自由地共享。支持最大可達(dá)2T的數(shù)據(jù)庫。字符串和BLOB類型
2、的大小只受限于可用內(nèi)存。完整配置的少于250KB,忽略一些可選特性的少于150KB。在大多數(shù)常見操作上比流行的客戶/服務(wù)器數(shù)據(jù)庫引擎更快。簡單易于使用的API。內(nèi)建TCL綁定。另外提供可用于許多其他語言的綁定。具有良好注釋的源代碼,代碼95%有較好的注釋。獨立:沒有外部依賴。源代碼位于公共域,可用于任何用途。用SQLite連接的程序可以使用SQL數(shù)據(jù)庫,但不需要運行一個單獨的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)進(jìn)程(separateRDBMSprocess)。SQLite不是一個用于連接到大型數(shù)據(jù)庫服務(wù)器(bigdatabaseserver)的客戶端庫(clientlibrary),而
3、是非常適合桌面程序和小型網(wǎng)站的數(shù)據(jù)庫服務(wù)器。SQLite直接讀寫(readsandwritesdirectly)在硬盤上的數(shù)據(jù)庫文件。?下面是我自己的使用過程:SQLite安裝方案SQLite的最新版本可以從這里下載。下面我們以Windows版本sqlite-3_5_1.zip為例介紹其安裝方法。(大家可以選擇下載安裝適合自己的版本)下載后,將sqlite-3_5_1.zip解壓縮至C:sqlite目錄即完成安裝。C:sqlite目錄構(gòu)造為:C:sqlite??
4、??+--sqlite3.exe打開一個CMD命令窗口C:>cdsqliteC:sqlite>sq
5、lite3.exemydb.dbSQLiteversion3.5.1Enter".help"forinstructionssqlite>createtableuser(idintegerprimarykey,namevarchar(32));sqlite>.schemaCREATETABLEuser(idintegerprimarykey,namevarchar(32));sqlite>.quit退出后,查看C:sqlite目錄,會發(fā)現(xiàn)多出一個mydb.db文件:C:sqlite??
6、??+--sqlite3.exe??+--mydb.dbSQLite性能優(yōu)化很多人
7、直接就使用了,并未注意到SQLite也有配置參數(shù),可以對性能進(jìn)行調(diào)整。有時候,產(chǎn)生的結(jié)果會有很大影響。主要通過pragma指令來實現(xiàn)。比如:空間釋放、磁盤同步、Cache大小等。不要打開。前文提高了,Vacuum的效率非常低!PRAGMAauto_vacuum;?PRAGMAauto_vacuum=0
8、1;查詢或設(shè)置數(shù)據(jù)庫的auto-vacuum標(biāo)記。正常情況下,當(dāng)提交一個從數(shù)據(jù)庫中刪除數(shù)據(jù)的事務(wù)時,數(shù)據(jù)庫文件不改變大小。未使用的文件頁被標(biāo)記并在以后的添加操作中再次使用。這種情況下使用VACUUM命令釋放刪除得到的空間。當(dāng)開啟auto-vacuum,當(dāng)提交一個從數(shù)據(jù)庫中
9、刪除數(shù)據(jù)的事務(wù)時,數(shù)據(jù)庫文件自動收縮,(VACUUM命令在auto-vacuum開啟的數(shù)據(jù)庫中不起作用)。數(shù)據(jù)庫會在內(nèi)部存儲一些信息以便支持這一功能,這使得數(shù)據(jù)庫文件比不開啟該選項時稍微大一些。只有在數(shù)據(jù)庫中未建任何表時才能改變auto-vacuum標(biāo)記。試圖在已有表的情況下修改不會導(dǎo)致報錯。建議改為8000PRAGMAcache_size;?PRAGMAcache_size=Number-of-pages;查詢或修改SQLite一次存儲在內(nèi)存中的數(shù)據(jù)庫文件頁數(shù)。每頁使用約1.5K內(nèi)存,缺省的緩存大小是2000.若需要使用改變大量多行的UPDATE或DELETE命令,并
10、且不介意SQLite使用更多的內(nèi)存的話,可以增大緩存以提高性能。當(dāng)使用cache_sizepragma改變緩存大小時,改變僅對當(dāng)前對話有效,當(dāng)數(shù)據(jù)庫關(guān)閉重新打開時緩存大小恢復(fù)到缺省大小。要想永久改變緩存大小,使用default_cache_sizepragma.打開。不然搜索中文字串會出錯。PRAGMAcase_sensitive_like;?PRAGMAcase_sensitive_like=0
11、1;LIKE運算符的缺省行為是忽略latin1字符的大小寫。因此在缺省情況下'a'LIKE'A'的值為真??梢酝ㄟ^打開case_sensiti