SQLite學習筆記(4)

來源:互聯網
上載者:User

                                               關於設計與概念(對前面來轉載自MRDB前輩的文章)的補充:

注意預查詢幾個比較重要的c  API函數:sqlite3_prepare_v2( );sqlite3_step(  ) ; sqlite_finalize( )。

臨時儲存空間:

                查詢處理的重要組成部分。RAM或者一個簡單的檔案,由編譯指示命令temp_store來選擇,在選擇檔案為儲存基礎時,通過temp_store_directory來,明確表示在哪裡建立隱藏檔。

預留位置的使用:

                  預設使用null。

 

                  封裝查詢的幾個函數:sqlite3_exec( ) ;sqlite3_get_table( ) ;

                  前一個函數不返回資料,第二個函數返回資料,還有就是記憶體佔用比較大。

 

錯誤處理:

                   sqlite_error 和  sqlite_busy。

                   注意錯誤處理:sqlite_errcode( )  ; sqlite_errmsg( ) 。

 

sqlite語句格式化:

                    注意 sqlite3_mprintf( ) 及其函數文檔;

                   在這裡可能會發生SQL注入攻擊。

                   從備份中恢複資料庫。

 

可操作的控制:

                功能由回呼函數實現:

                sqlite3_commit _hook( ),  sqlite3_rollback_hook( ) ; sqlite_update_hook ( ) ;分別監視提交、復原、更新。還有一個wal_hook(  ) 的鉤子函數,與一般的鉤子函數不太一樣。

                 重點:sqlite3_authorizer( ) 鉤子函數,這個函數是比較重要的鉤子函數。提供很強的對資料庫控制的細粒度控制,限制功能操作比較強。

 

使用線程:

               共用快取模式。

 

 

建立使用者自訂函數:

               sqlite3_create_function( )函數的應用;            

               可以將使用者自訂函數嵌入到check約束中。

 

建立使用者自訂彙總:

               主冊, 實現, 調用。

 

建立使用者自訂排序:

               函數sqlite3_create_collation( ) ;

               三種定序:binary 、 nocase 、rtrim 。

 

讀事務和寫事務:

                 sqlite在資料庫檔案中有著三種不同的檔案鎖:保留位元組、待定位元組和一個共用地區。

             

 繁忙處理:

                  做些其他的事情。小心蠻力的使用。

鎖與網路檔案系統:

                  SQLite依賴於檔案管理系統並發使用的鎖。不論什麼樣的檔案試聽,SQLite使用相同的鎖機制。

finalizer()函數:

                  事務或者鎖定的邊界,它們開始事務,結束事務。擷取鎖,釋放鎖。

共用快取模式:

                    關於單個線程中多個串連同時進行的問題。

                    該模式下,可以建立一個線程的共用相同頁面緩衝的多個串連。改組串連可以在同時同資料庫中有多個讀操作和一個寫操作,但是都只是單純的限制在本線程內,線程之間不能分享。

                    共用快取模式是專門為某種情況下,需還要保留記憶體同時以後稍高並發的嵌入式伺服器設計的。   


應該記住的是:

                   核心API圍繞兩個基本的用於執行SQL命令的資料結構:連結和語句。

                   命令執行的三個步驟:編譯、執行、完成。

                   sqlite的封轉函數exec()和get_table( )將這三步封裝為一個函數調用,自動處理相關聯的語句對象。

                   API擴充提供了三種不同的自訂SQLite的方式:使用者自訂函數、使用者自訂彙總、使用者自訂定序。

                   重點在於:

                   SQLite對於事物和鎖的管理,事物和鎖如何在後台工作的,如何與代碼混合使用等。

                        

                                      ---------------------------------分--------------------------割-------------------線-------------------------------------------------

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.