最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SQLite 中文指南之FAQ第3/6頁

 更新時間:2008年09月12日 18:09:17   作者:  
sqllite使用過程中碰到的一些問題解決,中文版

但是,client/server型的數(shù)據(jù)庫引擎 (如 PostgreSQL, MySQL, 以及 Oracle) 通常支持更高的并發(fā)度, 并支持多進(jìn)程同時寫入同一個數(shù)據(jù)庫。由于總有一個控制良好的服務(wù)器協(xié)調(diào)數(shù)據(jù)庫的訪問,這才保證了以上 特性的實現(xiàn)。如果你的應(yīng)用需要很高的并發(fā)度,你應(yīng)該考慮使用client/server數(shù)據(jù)庫。事實上,經(jīng)驗告訴 我們大多數(shù)應(yīng)用所需要的并發(fā)度比他們的設(shè)計者們想象的要少得多。

當(dāng) SQLite 嘗試操作一個被另一個進(jìn)程鎖定的文件時,缺省的行為是返回 SQLITE_BUSY。你可以用 C代碼更改這一行為。 使用 sqlite3_busy_handler() 或sqlite3_busy_timeout() API函數(shù)。

如果兩個或更多進(jìn)程同時打開同一個數(shù)據(jù)庫,其中一個進(jìn)程創(chuàng)建了新的表或索引,則其它進(jìn)程可能不能立即看見新的表。其它進(jìn)程可能需要關(guān)閉并重新連結(jié)數(shù)據(jù)庫。

(8) SQLite是線程安全的嗎?

有時候是的。為了線程安全,SQLite 必須在編譯時把 THREADSAFE 預(yù)處理宏設(shè)為1。在缺省的發(fā)行的已編譯版本中 Windows 版的是線程安全的,而 Linux 版的不是。如果要求線程安全,Linux 版的要重新編譯。

“線程安全”是指二個或三個線程可以同時調(diào)用獨立的不同的sqlite3_open() 返回的"sqlite3"結(jié)構(gòu)。而不是在多線程中同時使用同一個 sqlite3 結(jié)構(gòu)指針。

一個sqlite3結(jié)構(gòu)只能在調(diào)用 sqlite3_open創(chuàng)建它的那個進(jìn)程中使用。你不能在一個線程中打開一個數(shù)據(jù)庫然后把指針傳遞給另一個線程使用。這是因為大多數(shù)多線程系統(tǒng)的限制(或 Bugs?)例如RedHat9上。在這些有問題的系統(tǒng)上,一個 線程創(chuàng)建的fcntl()鎖不能由另一個線程刪除或修改。由于SQLite依賴fcntl()鎖來進(jìn)行并發(fā)控制,當(dāng)在線程間傳遞數(shù)據(jù)庫連接時會出現(xiàn)嚴(yán)重的問題。

也許在Linux下有辦法解決fcntl()鎖的問題,但那十分復(fù)雜并且對于正確性的測試將是極度困難的。因此,SQLite目前不允許在線程間共享句柄。

在UNIX下,你不能通過一個 fork() 系統(tǒng)調(diào)用把一個打開的 SQLite 數(shù)據(jù)庫放入子過程中,否則會出錯。

(9) 如何列出一個 SQLite 數(shù)據(jù)庫中的所有的表/索引?

在sqlite3 命令行程序中你可以用命令 ".tables" 來顯示所有的表或者用 ".schema"來顯示所有的表結(jié)構(gòu)和索引。但命令后不要跟 LIKE 語句,否則會限制表的顯示。

相關(guān)文章

最新評論

浦北县| 镇平县| 伊通| 阿图什市| 五华县| 安国市| 汝南县| 武山县| 常熟市| 灯塔市| 萨迦县| 潞西市| 五莲县| 信阳市| 大洼县| 贡嘎县| 疏附县| 刚察县| 新竹市| 双牌县| 鹿邑县| 通辽市| 遵义县| 镇江市| 宁南县| 华安县| 拉萨市| 原平市| 盐源县| 万荣县| 兰考县| 莎车县| 大足县| 澜沧| 砚山县| 无棣县| 精河县| 太谷县| 沂水县| 玉林市| 嵩明县|