青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

(搬運工)常用內存數據庫介紹(二)

Posted on 2012-07-20 16:06 點點滴滴 閱讀(588) 評論(0)  編輯 收藏 引用 所屬分類: 10 服務器

4. 常用內存數據庫

4.1 SQLite

SQLite是一個小型的C程序庫,實現了獨立的,可嵌入的,零配置的SQL數據庫引擎。特性包括:

  • 事務操作是原子,一致,孤立,并且持久的(ACID),即使在系統崩潰和電源故障之后。
  • 零配置——不需要安裝和管理。
  • 實現了絕大多數SQL92標準。
  • 整個數據庫存儲在一個單一的文件中。
  • 數據庫文件可以在不同字節序的機器之間自由地共享。
  • 支持最大可達2T的數據庫。 (241 字節)
  • 字符串和BLOB類型的大小最大可達 2G 字節(231字節)
  • 小的代碼: 完整配置的少于250KB,忽略一些可選特性的少于150KB
  • 在大多數常見操作上比流行的客戶/服務器數據庫引擎更快
  • 簡單,易于使用的API
  • 內建TCL綁定另外提供可用于許多其他語言的綁定。
  • 具有良好注釋的源代碼,95%經過測試。
  • 獨立:沒有外部依賴。
  • 源代碼位于公共域。 可用于任何用途。

SQLite發行版包含一個獨立的命令行訪問程序(sqlite),可用于管理SQLite數據庫,并適合作為一個如何使用SQLite庫的例子。

License: SQLite使用Public domain授權(注),對于個人使用和商業使用都是免費的。

技術上的優點和特性
SQLite是一個輕量級、跨平臺的關系型數據庫。


◇輕量級

先說它的第一個特色:輕量級。想必SQLite的作者很看重這個特性,連它的Logo都是用的羽毛,來顯擺它的輕飄飄。SQLiteC/S模式的數據庫軟件不同,它是進程內的數據庫引擎,因此不存在數據庫的客戶端和服務器。使用SQLite一般只需要帶上它的一個動態庫,就可以享受它的全部功能。而且那個動態庫的尺寸也挺小,以版本3.6.11為例,Windows487KBLinux347KB

綠色軟件

SQLite的另外一個特點是綠色:它的核心引擎本身不依賴第三方的軟件,使用它也不需要安裝。所以在部署的時候能夠省去不少麻煩。

◇單一文件

所謂的單一文件,就是數據庫中所有的信息(比如表、視圖、觸發器、等)都包含在一個文件內。這個文件可以copy到其它目錄或其它機器上,也照用不誤。

★技術上的缺點和不足

◇并發訪問的鎖機制
SQLite在并發(包括多進程和多線程)讀寫方面的性能一直不太理想。數據庫可能會被寫操作獨占,從而導致其它讀寫操作阻塞或出錯。

SQL標準支持不全
在它的官方網站上,具體列舉了不支持哪些SQL92標準。我個人感覺比較不爽的是不支持外鍵約束。

◇網絡文件系統(以下簡稱NFS
有時候需要訪問其它機器上的SQLite數據庫文件,就會把數據庫文件放置到網絡共享目錄上。這時候你就要小心了。當SQLite文件放置于NFS時,在并發讀寫的情況下可能會出問題(比如數據損壞)。原因據說是由于某些NFS的文件鎖實現上有Bug

★編程語言接口
SQLite支持很多種語言的編程接口。這對于我這種喜歡混用多種編程語言的人來說,是很爽的。下面我大概介紹一下。

C/C++
由于SQLite本身是C寫的,它自帶的API也是C接口的。所以C/C++用起來最直接了。假如你不喜歡面向過程的C API風格,可以另外找個C++的包裝庫。想重新發明輪子的同學,也可以自己包裝一個。

Java
如果要用Java訪問SQLite,可以通過SQLiteJDBC驅動,或者通過專門的SQLite包裝庫。我個人建議走JDBC方式,萬一將來要換數據庫,代碼就不用大改。

Python
pysqlite
Python操作SQLite的首選。從Python 2.5開始,它已經被整合到Python的標準庫中。看來Python社區還是蠻喜歡SQLite嘛。
.Net
對于喜歡.Net的同學,可以通過SQLiteADO.NET
驅動來訪問。
Ruby
Ruby
可以通過SQLite-Ruby
操作SQLite數據庫,不過我沒用過。
Perl
CPAN上有DBD::SQLite
,不過我也沒用過。

★一些非技術的參考因素

需要根據如何選擇開源項目里面提到的幾個參考因素,再評估一下。
◇授權協議(License
SQLite使用的是Public Domain協議,這是最爽一種,可以放心大膽地用。
◇用戶的普及程度
最近這幾年,使用SQLite的人越來越多。包括一些大公司也開始把它整合到產品中(比如GoogleGearsAppleSafariAdobeAIR)。
◇開發的活躍程度
如果到SQLiteChange Log上大致了解一下,可以看出最近5年基本上每1-2個月都會有更新。說明開發的活躍度還是非常高的。

SQLite不同于其他大部分的SQL數據庫引擎,因為它的首要設計目標就是簡單化:

  • 易于管理
  • 易于使用
  • 易于嵌入其他大型程序
  • 易于維護和配置

許多人喜歡SQLite因為它的小巧和快速. 但是這些特性只是它的部分優點, 使用者還會發現SQLite是非常穩定的. 出色的穩定性源于它的簡單, 越簡單就越不容易出錯. 除了上述的簡單、小巧和穩定性外, 最重要的在于SQLite力爭做到簡單化.

簡單化在一個數據庫引擎中可以說是一個優點, 但也可能是個缺點, 主要決定于你想要做什么. 為了達到簡單化, SQLite省略了一些人們認為比較有用的特性, 例如高并發性、 嚴格的存取控制、豐富的內置功能、 存儲過程、復雜的SQL語言特性、 XML以及Java的擴展, 超大的萬億級別的數據測量等等. 如果你需要使用上述的這些特性并且不介意它們的復雜性, 那么SQLite也許就不適合你了. SQLite沒有打算作為一個企業級的數據庫引擎, 也并不打算和Oracle或者PostgreSQL競爭.

僅憑經驗來說SQLite適用于以下場合: 當你更看中簡單的管理、使用和維護數據庫, 而不是那些企業級數據庫提供的不計其數的復雜功能的時候,使用SQLite是一個比較明智的選擇. 事實也證明, 人們在許多情況下已經清楚的認識到簡單就是最好的選擇.

4.1.1 SQLite最佳試用場合

· 網站

作為數據庫引擎SQLite適用于中小規模流量的網站(也就是說, 99.9%的網站). SQLite可以處理多少網站流量在于網站的數據庫有多大的壓力. 通常來說, 如果一個網站的點擊率少于100000次/天的話, SQLite是可以正常運行的. 100000次/天是一個保守的估計, 不是一個準確的上限. 事實證明, 即使是10倍的上述流量的情況下SQLite依然可以正常運行.

· 嵌入式設備和應用軟件

因為SQLite數據庫幾乎不需要管理, 因此對于那些無人值守運行或無人工技術支持的設備或服務, SQLite是一個很好的選擇. SQLite能很好的適用于手機, PDA, 機頂盒, 以及其他儀器. 作為一個嵌入式數據庫它也能夠很好的應用于客戶端程序.

· 應用程序文件格式

SQLite作為桌面應用程序的本地磁盤文件格式取得了巨大成功.例如金融分析工具、CAD 包、檔案管理程序等等. 一般的數據庫打開操作需要調用sqlite3_open()函數,并且標記一個顯式本地事務的起始點(BEGIN TRANSACTION)來保證以獨占的方式得到文件的內容. 文件保存將執行一個提交(COMMIT)同時標記另一個顯式本地事務起始點. 這種事務處理的作用就是保證對于應用程序數據文件的更新是原子的、持久的、獨立的和一致的.

數據庫里可以加入一些臨時的觸發器,用來把所有的改變記錄在一張臨時的取消/重做日志表中. 當用戶按下取消/重做按鈕的時候這些改變將可以被回滾. 應用這項技術實現一個無限級的取消/重做功能只需要編寫很少的代碼.

· 替代某些特別的文件格式

許多程序使用fopen(), fread(), 或 fwrite()函數創建和管理一些自定義的文件用來保存數據. 使用SQLite替代這些自定義的文件格式將是一種很好的選擇.

· 內部的或臨時的數據庫

對于那些有大量的數據需要用不同的方式篩選分類的程序, 相對于編寫同樣功能的代碼, 如果你把數據讀入一個內存中的SQLite數據庫, 然后使用連接查詢和ORDER BY子句按一定的順序和排列提取需要的數據, 通常會更簡單和快速. 按照上述的方法使用內嵌的SQLite數據庫將會使程序更富有靈活性, 因為添加新的列或索引不用重寫任何查詢語句.

· 命令行數據集分析工具

有經驗的SQL用戶可以使用SQLite命令行程序去分析各種混雜的數據集. 原是數據可以從CSV(逗號分隔值文件)文件中導入, 然后被切分產生無數的綜合數據報告. 可能得用法包括網站日志分析, 運動統計分析, 編輯規劃標準, 分析試驗結果.

當然你也可以用企業級的客戶端/服務器數據庫來做同樣的事情. 在這種情況下使用SQLite的好處是: SQLite的部署更為簡單并且結果數據庫是一個單獨的文件, 你可以把它存儲在軟盤或者優盤或者直接通過email發給同事.

· Demo或測試版的時候作為企業級數據庫的替代品

如果你正在編寫一個使用企業級數據庫引擎的客戶端程序, 使用一個允許你連接不同SQL數據庫引擎的通用型數據庫后臺將是很有意義的. 其更大的意義在于將SQLite數據庫引擎靜態的連接到客戶端程序當中,從而內嵌SQLite作為混合的數據庫支持. 這樣客戶端程序就可以使用SQLite數據庫文件做獨立的測試或者驗證.

· 數據庫教學

因為SQLite的安裝和使用非常的簡單(安裝過程幾乎忽略不計, 只需要拷貝SQLite源代碼或sqlite.exe可執行文件到目標主機, 然后直接運行就可以) 所以它非常適合用來講解SQL語句. 同學們可以非常簡單的創建他們喜歡的數據庫, 然后通過電子郵件發給老師批注或打分. 對于那些感興趣怎樣實現一個關系型數據庫管理系統(RDBMS)的高層次的學生, 按照模塊化設計且擁有很好的注釋和文檔的SQLite源代碼, 將為他們打下良好的基礎. 這并不是說SQLite就是如何實現其他數據庫引擎的精確模型, 但是很適合學生們了解SQLite是如何快速工作的, 從而掌握其他數據庫系統的設計實現原則.

· 試驗SQL語言的擴展

SQLite簡單且模塊化的設計使得它可以成為一個用來測試數據庫語言特性或新想法的優秀的原型平臺.

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品免费电影| 午夜精品成人在线| 一区二区电影免费观看| 亚洲国产女人aaa毛片在线| 国模叶桐国产精品一区| 欲色影视综合吧| 亚洲日本精品国产第一区| 日韩亚洲欧美成人一区| 亚洲免费视频中文字幕| 欧美尤物一区| 亚洲成人在线视频网站| 欧美激情第五页| 久久综合九色综合欧美就去吻| 亚洲日韩第九十九页| 99精品热视频| 久久国产一二区| 亚洲福利视频三区| 亚洲免费中文字幕| 免费欧美在线| 国产精品久久久久久久久久妞妞| 国产一区二区精品久久91| 亚洲精品综合久久中文字幕| 性久久久久久久久久久久| 免费观看在线综合| 亚洲午夜一区二区| 欧美福利电影网| 国产一区二区三区精品欧美日韩一区二区三区 | 1769国产精品| 正在播放亚洲| 免费看精品久久片| 亚洲在线观看| 欧美大学生性色视频| 国产欧美一区二区在线观看| 亚洲激情啪啪| 久久精品av麻豆的观看方式| 亚洲欧洲在线看| 欧美自拍偷拍午夜视频| 欧美激情片在线观看| 精品成人一区二区| 久久精品成人欧美大片古装| 99re66热这里只有精品4| 久久久欧美精品| 国产精品―色哟哟| 亚洲午夜电影网| 亚洲国产成人午夜在线一区| 欧美中文字幕在线| 国产精品网站在线播放| 亚洲午夜视频在线| 亚洲精品欧美日韩专区| 久久视频免费观看| 国产一区二区高清不卡| 欧美专区福利在线| 亚洲欧美日韩国产一区二区三区| 蜜臀av一级做a爰片久久 | 欧美成人精品| 韩国成人精品a∨在线观看| 亚洲欧美日韩国产中文| 日韩亚洲欧美精品| 亚洲精品乱码久久久久久日本蜜臀 | 亚洲无线观看| 亚洲福利免费| 欧美成人精品影院| 亚洲国产免费看| 亚洲动漫精品| 免费成人高清在线视频| 亚洲国产精品va在看黑人| 免费在线观看一区二区| 久久久久久久综合狠狠综合| 一区精品在线| 美女日韩欧美| 嫩草影视亚洲| 一区二区免费在线播放| 欧美.com| 欧美成年人视频| 国产精品99久久久久久人 | 欧美激情按摩| 日韩一区二区福利| 亚洲精品一区二区网址| 欧美三区在线| 久久精品亚洲国产奇米99| 久久九九电影| 99亚洲一区二区| 亚洲伊人第一页| 伊人久久大香线蕉av超碰演员| 欧美大片免费久久精品三p | 久久久精品一区| 欧美11—12娇小xxxx| 一本色道久久综合亚洲精品不 | 久久精品国产成人| 亚洲国产高潮在线观看| 亚洲欧洲另类| 国产欧美日韩不卡免费| 免费成人你懂的| 欧美日韩精品一区视频| 欧美一区二区三区免费看| 久久久国产91| 亚洲午夜性刺激影院| 欧美中文字幕不卡| 夜夜嗨av色一区二区不卡| 香港久久久电影| 亚洲美女精品久久| 亚洲一区免费观看| 久久露脸国产精品| 亚洲视屏在线播放| 久久久国产一区二区| 在线亚洲欧美| 久久久久久亚洲精品中文字幕 | 一本色道久久综合狠狠躁篇怎么玩| 国产精品第一页第二页第三页| 久久久www成人免费精品| 欧美精品福利视频| 美女露胸一区二区三区| 国产精品一区二区三区成人| 亚洲国产成人tv| 亚洲国产cao| 欧美在线日韩| 香蕉久久国产| 欧美私人啪啪vps| 亚洲国产精品热久久| 国外成人在线视频网站| 久久久美女艺术照精彩视频福利播放| 鲁大师成人一区二区三区| 欧美中文在线观看国产| 欧美性色综合| 亚洲美洲欧洲综合国产一区| 欧美高清在线视频观看不卡| 亚洲欧美中文日韩在线| 欧美日韩国产成人| 最近看过的日韩成人| 在线观看欧美亚洲| 久久久7777| 美女国产一区| 在线高清一区| 久久夜色精品国产亚洲aⅴ| 久久理论片午夜琪琪电影网| 国产精自产拍久久久久久蜜 | 欧美一区二区视频在线| 在线一区免费观看| 欧美日韩三区四区| 一区二区三区 在线观看视| 在线亚洲精品福利网址导航| 欧美日韩在线三区| 99精品99久久久久久宅男| 老司机亚洲精品| 亚洲第一区在线观看| 久久综合精品国产一区二区三区| 美日韩精品免费| 亚洲国产日韩一区| 欧美激情中文字幕一区二区| 亚洲精品孕妇| 午夜欧美电影在线观看| 国产在线不卡精品| 欧美 日韩 国产精品免费观看| 亚洲国产一区二区a毛片| 中文网丁香综合网| 国产欧美日韩激情| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲免费观看高清完整版在线观看| 男人的天堂亚洲| 中文国产一区| 久久亚洲春色中文字幕| 亚洲精品视频啊美女在线直播| 欧美日韩一区二区视频在线观看| 亚洲视频在线一区| 久久先锋资源| 一本高清dvd不卡在线观看| 国产欧美日韩另类视频免费观看| 久久久久国产一区二区三区四区 | 亚洲国产天堂网精品网站| 亚洲欧美日韩国产综合在线 | 欧美一级二级三级蜜桃| 狠狠久久亚洲欧美专区| 亚洲欧洲偷拍精品| 老司机精品视频网站| 夜久久久久久| 韩日成人在线| 欧美日韩性生活视频| 校园激情久久| 亚洲精品一区中文| 麻豆成人91精品二区三区| 亚洲一区二区三区精品在线| 免费黄网站欧美| 中文一区二区| 亚洲国产第一页| 久久精品99| 亚洲淫片在线视频| 亚洲国产综合91精品麻豆| 国产欧美日韩精品一区 | 国产欧美日韩| 欧美成人性生活| 久久国产精品黑丝| 韩国一区电影| 欧美一级淫片aaaaaaa视频| 亚洲精品乱码久久久久久日本蜜臀| 久久久久久午夜| 午夜亚洲影视| 亚洲婷婷免费| 亚洲毛片在线| 亚洲激情一区| 亚洲春色另类小说|