欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請(qǐng)碼778899分享:小巧玲瓏的SQLite

柚子快報(bào)邀請(qǐng)碼778899分享:小巧玲瓏的SQLite

http://yzkb.51969.com/

SQLite是桌面端和移動(dòng)端的不錯(cuò)選擇

前言

SQLite身影無處不在。 SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計(jì)目標(biāo)是嵌入式的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個(gè)Alpha版本誕生于2000年5月。 至今已經(jīng)有14個(gè)年頭,SQLite也迎來了一個(gè)版本 SQLite 3已經(jīng)發(fā)布。

SQLite的能力

SQLIte數(shù)據(jù)庫最大支持128TiB(140 terabytes, or 128 tebibytes, or 140,000 gigabytes or 128,000 gibibytes). 在7G文件大小下,6千萬條記錄的有索引某個(gè)表中,查詢條件如果是索引字段,不管什么位置,查詢都不要1ms時(shí)間。

案例1

插入: 插入100萬行數(shù)據(jù)的產(chǎn)生數(shù)據(jù)時(shí)間就有100萬次for循環(huán)。并且表除了主鍵,沒有其它索引。 插入100萬行 40s. 每行有19個(gè)字段,數(shù)據(jù)庫文件占225M 插入1000萬行,1個(gè)小時(shí)沒完成,測(cè)試程序卡死。占用內(nèi)存90%。經(jīng)過分析,其實(shí)1000萬行數(shù)據(jù)在30分鐘左右時(shí)就插入完畢??赡苁莾?nèi)存不足,導(dǎo)致響應(yīng)特別慢。數(shù)據(jù)庫文件占空間2.5G。由于筆記本內(nèi)存不足,接下來不再測(cè)試1000萬行的情況。 插入300萬行,122910ms,即123秒,其中產(chǎn)生數(shù)據(jù)的時(shí)間和釋放數(shù)據(jù)內(nèi)存的時(shí)間占了96秒。接著,第二次插入300萬行,128910ms,即 129秒。第三次插入300萬行,125575ms,即126秒。cpu保持在47%、內(nèi)存保持在36%,其中數(shù)據(jù)本身占的內(nèi)存23%。

查詢: 查詢性能情況: 查詢語句 select * from 表名 where cardid=‘4600331’ 未建立索引的情況 1000萬行查詢1.5秒 建立索引后,1毫秒內(nèi) 在兩個(gè)字段上建立索引后,插入數(shù)據(jù)時(shí)間變長。插入300萬行,122910ms,即123秒,其中產(chǎn)生數(shù)據(jù)的時(shí)間和釋放數(shù)據(jù)內(nèi)存的時(shí)間占了96秒。 接著,第二次插入300萬行,128910ms,即129秒。 第三次插入300萬行,290575ms,即290秒。 第四次插入100萬行,279031ms,即279秒。 建立索引后1000萬行數(shù)據(jù)占空間2.8G。 更新單行數(shù)據(jù)133ms。刪除單行數(shù)據(jù)104ms。

注意:建立索引后,插入數(shù)據(jù)時(shí)間倍增。第一次插入300萬行約2分鐘,接著第二次插入300萬行5分鐘,第三次約7分鐘。

SQLite的使用場(chǎng)景

對(duì)于重要程度不是特別高的場(chǎng)合,可以大量使用SQLite庫保存歷史數(shù)據(jù),平時(shí)用不到的時(shí)候只占硬盤,不占內(nèi)存。 SQLite 文檔還貼心地指出了什么時(shí)候用 client/server SQL 數(shù)據(jù)庫(如MySQL):

Is the data separated from the application by a network? → choose client/serverMany concurrent writers? → choose client/serverBig data? → choose client/serverOtherwise → choose SQLite!

sqlcipher

安裝:

brew install SQLCipher

pip3 install pysqlcipher3

代碼示例

import peewee

from playhouse.sqlcipher_ext import SqlCipherDatabase

db = SqlCipherDatabase('testsqlcipher.db', passphrase=get_good_passphrase())

db_proxy = peewee.Proxy()

db_proxy.initialize(db)

class Model(peewee.Model):

class Meta:

database = db_proxy

class Person(Model):

name = peewee.CharField(primary_key=True)

age = peewee.IntegerField()

def __unicode__(self):

return u"{0} (age {1})".format(self.name,self.age)

Person.create_table()

Person("alice",17)

Person("bob",23)

常用技巧

兩個(gè)Sqlite庫之間導(dǎo)數(shù)據(jù)

attach DataBase '/opt/data/my.db' as db2;

INSERT into StockBaseInfo select S.* from db2.StockBaseInfo as S

detach database db2;

柚子快報(bào)邀請(qǐng)碼778899分享:小巧玲瓏的SQLite

http://yzkb.51969.com/

好文推薦

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。

轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19093446.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請(qǐng)?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄