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

程序讓生活更美好

半畝方塘 天光云影

  C++博客 ::  :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
  55 隨筆 :: 4 文章 :: 202 評(píng)論 :: 0 Trackbacks

Features and Limitations

特性和局限性

In this section we will look at the key features of SQLite and some of its limitations. The nature of SQLite makes it an ideal choice for quite a number of tasks, but it's not suitable for everything.

在本部分我們將要看一下SQLite關(guān)鍵特性和它的一些局限性。SQLite的本質(zhì)使它成為許多任務(wù)的理想選擇,但它并不適合所有的方面。

It is important to decide whether SQLite or any other database engine for that matteris the right choice for your application before committing to a particular technology.

在為你的應(yīng)用確定一個(gè)特殊的技術(shù)之前,決定選擇使用SQLite或者其它的任何數(shù)據(jù)庫(kù)引擎作是非常重要的。

Speed

速度

SQLite is extremely efficient, benefiting from a highly optimized internal architecture and a small memory footprint. Because SQLite is not a client/server database, the overheads of running a database daemon and socket communication are eliminated.

SQLite 非常高效,這得益于高度優(yōu)化的內(nèi)部結(jié)構(gòu)和很小的內(nèi)存需求。因?yàn)镾QLite 不是一個(gè)客戶端/服務(wù)器類型的數(shù)據(jù)庫(kù),運(yùn)行一個(gè)數(shù)據(jù)庫(kù)進(jìn)程和套接字通信的開(kāi)銷被消除了。

The published speed comparison at
http://www.sqlite.org/speed.html compares SQLite to both MySQL and PostgreSQL. It finds that SQLite can perform up to 20 times faster than PostgreSQL and more than twice as fast as MySQL for common operations.

http://www.sqlite.org/speed.html 上的發(fā)表了它和MySQL和PostgreSQL速度對(duì)比。對(duì)比表明,SQLite在執(zhí)行普通操作的時(shí)候速度比PostgreSQL快20倍,是MySQL的兩倍。


These tests were performed with default installations of each database, and although it is possible to tune the MySQL and PostgreSQL servers for slightly better performance in a given environment, SQLite does not require any such optimization.

這個(gè)是在每個(gè)數(shù)據(jù)庫(kù)的默認(rèn)安裝情況下測(cè)試的,盡管在給定的環(huán)境中調(diào)整之后,MySQL和 PostgreSQL 的執(zhí)行情況會(huì)略有提高,但是SQLite是不需要任何優(yōu)化的。


The tests found that SQLite is significantly slower than the other databases only on the operations to create an index and to drop a table. However, slowness in these areas will not affect performance on a production database.

這個(gè)測(cè)試發(fā)現(xiàn),SQLite僅僅在執(zhí)行創(chuàng)建索引和刪除表的操作時(shí)速度要比其他數(shù)據(jù)庫(kù)慢得多。然而,這些方面得低速并不會(huì)影響到作為一個(gè)生產(chǎn)數(shù)據(jù)庫(kù)。

Portability

移植性

Because SQLite databases are stored as single files on the filesystem, they are very portable indeed. A database can be copied from one file to another, even across different operating systems. This means that for a cross-platform distribution you just need to concentrate on making your code portable even when a populated database is to be shipped with the application.

因?yàn)镾QLite數(shù)據(jù)庫(kù)在文件系統(tǒng)上是作為單個(gè)文件存儲(chǔ)的,實(shí)際上它們是非常容易移植的。一個(gè)數(shù)據(jù)庫(kù)可被從一個(gè)文件拷貝到另一個(gè)文件,甚至是跨越不同的操作系統(tǒng)。這意味著在有一個(gè)交叉平臺(tái)上發(fā)布的時(shí)候,你只需要關(guān)注于使你的代碼,使其可以移植,甚至是當(dāng)一個(gè)可移植的數(shù)據(jù)庫(kù)是和應(yīng)用一起發(fā)布的。

SQLite has no external dependencies. The SQLite library is self-contained, so the only system requirement to run an application with an embedded SQLite database is the SQLite library itself. Because SQLite can be freely distributed, you can always ensure that this is present.


SQLite沒(méi)有額外的依賴性。SQLite 庫(kù)是自持的,因此在運(yùn)行嵌入式SQLite數(shù)據(jù)庫(kù)的時(shí)候,僅僅需要的是SQLite的庫(kù)本身。因?yàn)镾QLite能夠自由的發(fā)布,你總是可以確保這是可行的。

Security
安全

SQLite databases are stored to the filesystem and access control is performed by the underlying operating system based on that file's permission settings.
?SQLite 數(shù)據(jù)庫(kù)存儲(chǔ)在文件系統(tǒng)之上,訪問(wèn)控制是由基于操作系統(tǒng)之下的的文件權(quán)限設(shè)定來(lái)實(shí)現(xiàn)的。

Though SQLite can be accessed by processes running as different users if the correct file permissions are set, the database engine does not detect which user is performing a particular operation.

如果正確的文件訪問(wèn)權(quán)限設(shè)定了,盡管SQLite能夠通過(guò)進(jìn)程運(yùn)行作為不同的用戶來(lái)被訪問(wèn),但是數(shù)據(jù)庫(kù)引擎并不檢測(cè)哪個(gè)用戶正在執(zhí)行一個(gè)特別的操作。

The advantage of this is one of administrative simplicitythere is no need to set up a complex user grants scheme. Any user who has access to read the database file is able to access the database tables and records. Likewise, in a shared environment, users are able to create their own SQLite databases to their file space without any involvement from the system administrators.

它的優(yōu)點(diǎn)之一就是管理簡(jiǎn)單,不需要設(shè)定復(fù)雜的用戶授權(quán)模式。任何擁有訪問(wèn)權(quán)利的用戶都可以訪問(wèn)數(shù)據(jù)庫(kù)表格和記錄。同樣,在一個(gè)共享環(huán)境中,用戶可以在他們的自己的文件空間上創(chuàng)建他們自己的SQLite數(shù)據(jù)庫(kù)而不用涉及系統(tǒng)管理。

The disadvantage comes when you want to control permissions at a more finely grained level. There is no GRANT operation that would allow access to particular tables to one set of users but not others. If users have read access, they are able to read the entire database, and if they have write access, you have to be sure of their competence and trustworthiness with the data!

缺點(diǎn)是,當(dāng)你需要在更加細(xì)致粒度水平的控制權(quán)限的時(shí)候,它沒(méi)有GRANT操作,這個(gè)操作允許一部分用戶可訪問(wèn)特定的表而另一部分用戶不行。當(dāng)用戶擁有訪問(wèn)許可,他們能夠讀整個(gè)數(shù)據(jù)庫(kù),如果他們有寫許可,你必須要確定他們?cè)跀?shù)據(jù)上的的權(quán)限和信賴度

SQL Implementation

SQL工具

SQLite supports a large subset of the ANSI SQL-92 standard. Some features have a limited implementation and a few features are not supported at all.

SQLite支持ANSI SQL-92標(biāo)準(zhǔn)的大的子集。某些特性有一個(gè)有限的工具,其他一些特性并不都被支持。
For example, atomic transactions are available but cannot be nested; simple subqueries are possible but correlated subqueries are not; triggers can fire for each row but not for each statement; views are available but are read-only.

例如,原子事務(wù)是可用的,但不能嵌套;簡(jiǎn)單的子查詢是可以的,但相互關(guān)聯(lián)的子查詢是不行的;觸發(fā)器可以在每一行觸發(fā),但不能在每個(gè)語(yǔ)句上觸發(fā);視圖是可見(jiàn)但是只讀的。
The list of current limitations is maintained at
http://www.sqlite.org/omitted.html with the items at the top of the list indicating which items are most likely to be added to SQLite first.

目前被維護(hù)的局限性列表在 http://www.sqlite.org/omitted.html 上,列表的上部的選項(xiàng)指示了哪些選項(xiàng)最有可能被先加入到SQLite
In the vast majority of cases, none of the limitations of SQLite will cause problems when developing your application. For those that you need to work around, the benefits of using a fast, portable embedded database will almost certainly outweigh the cost of the workaround.

在大部分的情況下,SQLite的局限性不會(huì)給你的應(yīng)用開(kāi)發(fā)造成任何問(wèn)題。因此,你需要變通的方法,使用一個(gè)快速的,可移植的嵌入式數(shù)據(jù)庫(kù)的好處將比變通方法的費(fèi)用好的多。

Customization

定制

The SQLite library includes a very powerful mechanism for adding user-defined functions to the SQL command set. Custom functions can even be written in many of the supported language APIs, not just C/C++.

?

Additionally, as the SQLite source code is public domain, you are free to examine and modify it as you see fit. If SQLite is missing a feature that you absolutely must have, why not add it yourself and give something back to the community?

此外,因?yàn)镾QLite的源代碼是開(kāi)放的,你可以自由的檢查和修改只要你認(rèn)為合適。如果SQLite現(xiàn)在缺少一個(gè)你很需要但卻還沒(méi)有的特性,為什么不自己添加然后給社區(qū)回贈(zèng)一些呢?

Supported APIs

SQLite now has extensive support for other programming languages through APIs that use the underlying C/C++ interface to communicate with SQLite database files.

C/C++

The core interface is implemented as a single library called libsqlite.so on Linux/Unix systems and sqlite.dll on Windows.

Only the SQLite library is required to allow all users to create their own databases, so very little administration is required to add SQL database capability to a shared system.

PHP

Support for SQLite in PHP has been available for a while, but since the release of PHP 5, it has been shipped with the standard distribution.

Traditionally, PHP and MySQL have gone hand in hand as the interface and back end for dynamic web sites, but it is expected that many more web hosting providers will offer SQLite as PHP 5 gains popularity. From the host's point of view, it is much simpler to administer than a client/server database as there are no complex permissions to manage and database files will be already counted in the disk quota.

Note

SQLite has proved itself to work very well with low- to medium-traffic web sites. As a very rough guideline, if you are expecting over 100,000 hits per dayand in practice, only a small number of web sites will have this level of trafficyou should consider how much database work is done by the web scripts and think about doing some kind of stress testing before committing to SQLite as your back end.


Perl

Perl allows access to SQLite through the Database Interface (DBI) module. This makes it very easy for existing Perl developers to use SQLite within their scripts. The DBI provides an abstraction layer to the Database Driver (DBD), so the same command set is used to access many different types of underlying databases.

The DBD::SQLite driver further allows access to the capabilities of SQLite that the Perl DBI does not allow. Although this does not create a Perl application that can be easily ported to another database back end, it does allow access to the powerful user-defined functions feature.

Tcl

The Tcl interface for SQLite is shipped as part of the SQLite distribution as a library that is imported into Tcl to activate the extensions.

Using Tcl and Tk together with SQLite, you have a platform that is ideal for rapid development of portable graphical user applications.

Other Programming Languages

SQLite has APIs for many other programming languages, including Java, .NET, Smalltalk, and Ruby. As more languages become supported, they are added to the list at http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers .

Scalability

The downside of using a single file to store databases is that SQLite is not as scalable as many client/server database systems.

The SQLite engine can address database files of up to 2TB in size; however, the restriction on the size of a database is more likely to be enforced by your operating system. In many cases, the size limit on a single file is 2GB.

File locking in SQLite is very coarse-grained. When a write operation takes place, the entire file is locked so that no other process can open it for reading or writing. Larger RDBMSs implement locking at the table or row level so that other processes are able to carry on working unless they are trying to access a specific piece of locked data.

Therefore, if you have a database that is likely to involve massive database files or a high frequency of slow write operations, SQLite may not be suitable and you should consider an RDBMS that is designed and tuned for multiple-user access.

?????????????????????摘自《SQLite》Chris?Newman
posted on 2006-05-31 22:25 北風(fēng)之神007 閱讀(811) 評(píng)論(0)  編輯 收藏 引用 所屬分類: SQLite

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            国产精品一区视频| 免费欧美在线视频| 一本大道久久精品懂色aⅴ| 国产精品久久久久影院色老大 | 亚洲激情影院| 欧美日韩国产在线| 久久精品99国产精品日本 | 久久夜色撩人精品| 欧美日韩和欧美的一区二区| 欧美在线视频在线播放完整版免费观看| 欧美在线一二三四区| 宅男噜噜噜66国产日韩在线观看| 性做久久久久久久免费看| 亚洲乱码国产乱码精品精98午夜| 午夜天堂精品久久久久| 一区二区三区精密机械公司 | 亚洲天堂成人| 久久久久免费| 久久丁香综合五月国产三级网站| 蜜桃av噜噜一区二区三区| 久久成人精品视频| 欧美午夜电影在线| 亚洲国产欧美日韩| 永久免费精品影视网站| 亚洲影院在线| 亚洲一区二区三区成人在线视频精品| 久久综合久久综合久久| 欧美日韩岛国| 亚洲国产精品久久久久婷婷884| 国产一区二区精品久久99| 亚洲视频一二| 亚洲一区二区三区免费观看| 欧美成人一区二区三区在线观看| 久久久久久日产精品| 国产伦精品一区二区三区四区免费| 日韩亚洲欧美在线观看| 夜夜嗨av一区二区三区四区 | 小黄鸭视频精品导航| 欧美日韩精品一区| 亚洲精品在线三区| a91a精品视频在线观看| 欧美福利网址| 亚洲日本无吗高清不卡| 99视频有精品| 欧美日韩一区二区三区四区五区| 日韩午夜电影在线观看| 亚洲午夜激情| 国产精品人人做人人爽人人添| 这里只有精品视频在线| 亚洲永久精品国产| 国产精品黄视频| 亚洲欧美日韩一区在线| 久久精品国产综合精品| 国产综合色在线| 久久久久88色偷偷免费| 久久久久久网| 亚洲欧洲一区二区三区久久| 亚洲欧洲一区二区在线播放| 蜜臀久久久99精品久久久久久| 免费欧美网站| 亚洲三级视频| 欧美日韩一区二区三区| 亚洲午夜视频在线| 久久成人精品电影| 18成人免费观看视频| 欧美成人免费全部观看天天性色| 亚洲精品一区二区三区99| 亚洲主播在线播放| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲综合激情| 久久亚洲综合色一区二区三区| 在线观看av一区| 欧美精品日本| 亚洲欧美日韩国产精品| 女人天堂亚洲aⅴ在线观看| 亚洲精选一区二区| 国产精品毛片a∨一区二区三区|国 | 欧美成人免费网| 日韩亚洲欧美精品| 久久精品亚洲乱码伦伦中文| 亚洲国产精品一区二区第一页| 欧美日韩不卡视频| 欧美中文在线视频| 最近中文字幕日韩精品| 亚洲欧美国产精品桃花| 一区二区三区在线高清| 欧美日韩精品一区二区| 欧美一区三区三区高中清蜜桃| 亚洲国产99| 久久爱另类一区二区小说| 日韩视频免费| 国产综合视频在线观看| 欧美日韩成人综合天天影院| 亚洲欧美日韩一区二区三区在线| 亚洲成人在线视频播放| 在线视频精品一区| 精品成人在线视频| 国产精品久久久久久妇女6080| 老色批av在线精品| 亚洲欧美日韩国产另类专区| 亚洲第一免费播放区| 欧美有码在线观看视频| 日韩五码在线| 伊人久久综合97精品| 国产精品毛片高清在线完整版| 另类激情亚洲| 欧美一区二区高清在线观看| 亚洲精品中文字幕女同| 欧美多人爱爱视频网站| 久久精品成人一区二区三区| 亚洲永久精品国产| 亚洲精品一二三| 永久555www成人免费| 国产婷婷色一区二区三区在线| 欧美偷拍另类| 欧美国产三区| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲一区二区三区精品视频| 亚洲精品中文字幕女同| 亚洲精品1区| 亚洲国产成人av好男人在线观看| 亚洲女爱视频在线| 欧美四级在线观看| 欧美极品色图| 免费视频一区二区三区在线观看| 午夜久久一区| 午夜亚洲福利| 亚洲欧美日韩在线不卡| 亚洲私人黄色宅男| 一区二区三区视频观看| 亚洲精品视频一区二区三区| 亚洲黄色在线| 亚洲国产精品一区二区第四页av | 欧美日韩直播| 欧美黄色网络| 欧美激情亚洲激情| 欧美激情第二页| 欧美另类极品videosbest最新版本 | 国产亚洲精品久久久久动| 国产精品视频yy9099| 国产精品嫩草影院av蜜臀| 国产精品多人| 国产麻豆视频精品| 国产日韩成人精品| 好男人免费精品视频| 狠狠色丁香久久婷婷综合丁香| 黑人极品videos精品欧美裸| 亚洲电影在线| 99国产精品视频免费观看一公开| 日韩午夜在线| 亚洲在线国产日韩欧美| 欧美与黑人午夜性猛交久久久| 欧美一区二区三区四区视频| 久久精品网址| 欧美国产日韩一区二区在线观看| 亚洲黄色免费电影| 日韩一区二区精品在线观看| 亚洲午夜在线观看视频在线| 欧美一区二区三区视频在线观看| 久久久国产亚洲精品| 免费观看30秒视频久久| 欧美另类高清视频在线| 国产精品午夜视频| 在线观看欧美激情| 99热免费精品在线观看| 午夜一区在线| 欧美风情在线| aa级大片欧美三级| 欧美一区二区三区视频免费播放 | 久久另类ts人妖一区二区| 欧美福利一区二区| 宅男噜噜噜66一区二区| 久久久999国产| 欧美日韩国产成人| 国产一区在线看| 一本色道久久综合精品竹菊| 欧美一区二区成人| 亚洲第一天堂av| 亚洲永久视频| 理论片一区二区在线| 国产精品美女主播| 亚洲国产高清视频| 欧美影院成年免费版| 亚洲第一中文字幕在线观看| 亚洲视频综合在线| 免费中文日韩| 国产精品一区在线播放| 亚洲裸体视频| 久久综合色88| 亚洲自拍偷拍福利| 欧美精品久久99久久在免费线| 国产麻豆综合| 中日韩午夜理伦电影免费| 美日韩在线观看| 午夜精品久久久99热福利| 欧美日韩成人综合天天影院| 亚洲第一精品夜夜躁人人爽| 久久国产精品99久久久久久老狼 | 久久国产免费看| 欧美视频二区36p|