SQLite

Sagteware kiekie:
SQLite
Sagteware besonderhede:
Weergawe: 3.24.0 Opgedateer
Upload datum: 22 Jun 18
Ontwikkelaar: D. Richard Hipp
Lisensie: Gratis
Populariteit: 21

Rating: 5.0/5 (Total Votes: 1)

SQLite is 'n oop biblioteek, multiplatform, gratis en klein C-biblioteek wat 'n selfstandige, ingebedde, transaksionele, bedienerlose en zero-configuration SQL databasis-enjin implementeer. Dit is die wêreld se mees gebruikte SQL-databasis-enjin.


Funksies in 'n oogopslag

Belangrike kenmerke sluit in ondersteuning vir geïsoleerde, atoom, duursame en konsekwente transaksies, SQL92 implementering, databasis lêers kan vrylik gedeel word tussen rekenaars, ondersteun databasisse tot 2 terabyte, ondersteuning vir gigabyte-grootte blobs en snare, klein kode voetafdruk, as sowel as 'n maklik om te gebruik en baie eenvoudige API (Application Programming Interface).

Daarbenewens benodig SQLite nie aanvanklike opset of verdere administrasie nie, kan ontwikkelaars 'n volledige databasis oplaai in 'n enkele skyflêer op die platform wat perfek is vir die gebruik van aansoeklêerformate, geen eksterne afhanklikhede het nie, in TCL (Tool Command Language) bindings en omvattende dokumentasie.

Bindings vir talle ander programmeringstale is afsonderlik beskikbaar. Die bronkode is goed kommentaar en dit kom met 'n selfstandige CLI (Command-Line Interface) kliënt wat van die offset ontwerp is om gebruik te word vir die administrasie van SQLite databasisse.


Waarvoor kan ek dit gebruik?

Die SQLite-databasis-enjin kan vir enige doel, persoonlike of kommersiële gebruik word. Voorgestelde toepassings vir SQLite sluit in databasis vir gadgets, webwerf databasis, stand-in vir 'n onderneming RDBMS (Relational Database Management System), sowel as die aansoek lêer formaat.


Onder die kap en ondersteunde OSes

Die SQLite-verspreiding kom met 'n selfstandige command line-toegangsprogram (sqlite) wat gebruik kan word om 'n SQLite-databasis te administreer en wat dien as 'n voorbeeld van hoe om die SQLite-biblioteek te gebruik. Dit is heeltemal in die ANSI-C-programmeertaal geskryf.

Ondersteunde bedryfstelsel stelsels sluit in GNU / Linux, Mac OS X en Microsoft Windows. Ondersteunde mobiele bedryfstelsels sluit Android en iOS in. Dit is suksesvol getoets met beide 32-bits en 64-bits hardeware platforms, en dit is maklik draagbaar vir ander OSes.

Wat is nuut in hierdie weergawe:

  • Hoogtepunte van hierdie uitgawe sluit in ondersteuning vir PostgreSQL-styl UPSERT en verbeterde prestasie, veral vir ORDER BY LIMIT navrae.

Wat is nuut in weergawe:

  • Maak gebruik van die atoom-skryf-vermoëns in die F2FS-lêersisteem wanneer dit beskikbaar is, vir sterk verlaagde transaksiekostes. Dit vereis tans die SQLITE_ENABLE_BATCH_ATOMIC_WRITE kompileer-opsie.
  • Laat TOTACH en DETACH opdragte toe om binne 'n transaksie te werk.
  • Laat SONDER ROWID virtuele tabelle toelaatbaar wees as die PRIMÊRE SLEUTEL presies een kolom bevat.
  • Die "fsync ()" wat plaasvind nadat die kopskrif in 'n WAL-reset geskryf is, gebruik nou die sinkronisasie-instellings vir kontrolepunte. Dit beteken dat dit 'n 'fullfsync' op Macs as PRAGMA checkpoint_fullfsync ingestel word.
  • Die sqlite3_sourceid () funksie probeer om vas te stel of die bronkode verander is van wat in die weergawebeheer gekontroleer is en as daar wysigings is, word die laaste vier karakters van die weergawe-hash vertoon as "alt1" of "alt2". Die doel is om toevallige en / of onverskillige wysigings op te spoor. 'N vervalser kan hierdie kenmerk ondermyn.
  • Verbeterde dehaling van kolom name vir CREATE TABLE AS-stellings met 'n totale navraag aan die regterkant.
  • Minder "stat ()" stelsel oproepe uitgereik deur die Unix VFS.
  • Verbeter die LIKE-optimalisering sodat dit met 'n ESCAPE-klousule werk.
  • Verbeterde PRAGMA integrity_check en PRAGMA quick_check om onduidelik rykorrupsie op te spoor wat hulle voorheen ontbreek. Werk ook beide pragmas op sodat hulle fouttekste eerder as SQLITE_CORRUPT terugkom wanneer hulle korrupsie in rekords ervaar.
  • Die navraagplanner verkies nou om sub-navrae van FROM-clausule te gebruik deur gebruik te maak van mede-roetines, eerder deur die optimalisering van die navraagplatform te gebruik. Ondersteuning vir die gebruik van mede-roetines vir subkwessies mag nie meer gedeaktiveer word nie.
  • Slaag inligting oor! =, IS, IS NIE, NIE NULL, en IS NULL beperkings in die xBestIndex metode van virtuele tabelle.
  • Verbeter die virtuele tabel CSV sodat dit die laaste ry insette aanvaar as die finale nuwe lynsein ontbreek.
  • Verwyder die selde gebruik "kras" geheue toewyser. Vervang dit met die SQLITE_CONFIG_SMALL_MALLOC konfigurasie instelling wat SQLite 'n wenk gee dat groot geheue toewysings waar moontlik vermy moet word.
  • Het die virtuele virtuele tabel bygevoeg na die virtuele tabel uitbreiding van die bestaande unie.
  • Het die virtuele tabel sqlite_dbpage bygevoeg om direkte toegang tot bladsye van die databasislêer te bied. Die bronkode is ingebou in die samesmelting en word geaktiveer met die opsie -DSQLITE_ENABLE_DBPAGE_VTAB kompileer-opsie.
  • Voeg 'n nuwe soort virtuele tabel fts5vocab by - 'instance' - wat die direkte toegang tot 'n FTS5 volledige teks indeks op die laagste moontlike vlak bied.
  • Verwyder 'n oproep na rand_s () in die Windows VFS, aangesien dit op sommige ouer skootrekenaars probleme in Firefox veroorsaak het.
  • Die bronkode src / shell.c na die command line shell is nie meer onder weergawe beheer. Daardie lêer word nou as deel van die bouproses gegenereer.
  • Diverse mikrooptimisaties verminder die gebruik van die CPU met ongeveer 2,1%.
  • Bug fixes:
  • Bevestig 'n foutiewe stelling () stelling wat deur OSSFuzz ontdek is. Kaartjie cb91bf4290c211d
  • Maak 'n duidelike geheue lek in sqlite3_result_pointer (). Kaartjie 7486aa54b968e9b
  • Vermy 'n moontlike gebruik-na-vrye fout deur skema reset uit te stel totdat die navraagplanner klaar is met die uitvoer. Kaartjie be436a7f4587ce5
  • Gebruik slegs indekse-op-uitdrukkings om ORDER BY of GROUP BY te optimaliseer as die COLLATE korrek is. Kaartjie e20dd54ab0e4383
  • Bevestig 'n beweringsfout wat opduik wanneer die uitdrukking in 'n indeks-op-uitdrukkings werklik 'n konstante is. Kaartjie aa98619ad08ddca
  • Stel 'n beweringsfout vas wat na PRAGMA reverse_unordered_selects kan voorkom. Kaartjie cb91bf4290c211d
  • Maak 'n segfault wat kan voorkom vir navrae wat gebruik maak van tabelwaarde-funksies in 'n IN of EXISTS subquery. Kaartjie b899b6042f97f5
  • Stel 'n moontlike integer-oorloopprobleem op wanneer u 'n spesifieke afskriklike algemene tafeluitdrukking opstel. Dit was nog 'n probleem wat deur OSSFuzz ontdek is. Inchecken 6ee8cb6ae5.
  • Bevestig 'n potensiële out-of-bound lees wanneer u 'n korrupte databasislêer navraag doen, 'n probleem wat deur Natalie Silvanovich van Google Project Zero opgespoor is. Inchecken 04925dee41a21f.

Wat is nuut in weergawe 3.20.1:

  • Die weergawe 3.20.1-patch-vrystelling verander twee reëls kode in die sqlite3_result_pointer () koppelvlak om 'n skaars geheue lek te herstel.

Wat is nuut in weergawe 3.9.2:

  • SQLite weergawe 3.9.2 is 'n patch release wat twee obskure foute bevestig.

Wat is nuut in weergawe 3.8.9:

  • Nuwe funksies in hierdie weergawe sluit in die PRAGMA index_xinfo opdrag, die sqlite3_status64 () koppelvlak, en die ".dbinfo" opdrag van die command line-skaal.

Wat is nuut in weergawe 3.8.8.2:

  • Die 3,8.8.2-patch-vrystelling regstel 'n klein probleem: Dit verseker dat die SQL13_wal_checkpoint (TRUNCATE) -operasie altyd die voorlopige log sal afskakel, selfs al is die log alreeds gereset en geen nuwe inhoud bevat nie. Dit is onduidelik of dit 'n foutoplossing of 'n nuwe funksie is.
  • Iets soos hierdie sal normaalweg in die volgende gereelde geskeduleerde vrylating gaan, maar 'n prominente SQLite-gebruiker het die verandering haastig nodig, sodat ons dit graag met hierdie pleister kan haas.
  • Daar is geen rede om op te gradeer nie, tensy jy eintlik die verbeterde gedrag van sqlite3_wal_checkpoint (TRUNCATE) benodig.

Wat is nuut in weergawe 3.8.8.1:

  • Maak 'n fout in die sorteerlogika, teenwoordig sedert weergawe 3.8.4, wat kan veroorsaak dat die uitvoer in die verkeerde volgorde voorkom op navrae wat 'n ORDER BY-klousule bevat, 'n LIMIT-klousule, en wat ongeveer 60 of meer kolomme bevat die resultaat stel. Kaartjie f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 vir sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

Wat is nuut in weergawe 3.8.8:

  • Nuwe funksies:
  • Bygevoeg die PRAGMA data_version opdrag wat gebruik kan word om te bepaal of 'n databasis lêer deur 'n ander proses aangepas is.
  • Het die SQLITE_CHECKPOINT_TRUNCATE opsie bygevoeg na die sqlite3_wal_checkpoint_v2 () koppelvlak, met ooreenstemmende verbeterings na PRAGMA wal_checkpoint.
  • Het die sqlite3_stmt_scanstatus () koppelvlak bygevoeg, slegs beskikbaar wanneer dit saamgestel is met SQLITE_ENABLE_STMT_SCANSTATUS.
  • Die sqlite3_table_column_metadata () is verbeter om korrek te werk op SONDER ROWID-tabelle en om te kyk na die bestaan ​​van 'n tabel as die kolomnaamparameter NULL is. Die koppelvlak word nou ook by die bou ingesluit, sonder dat die SQLITE_ENABLE_COLUMN_METADATA kompileer-opsie vereis word.
  • Bygevoeg die SQLITE_ENABLE_API_ARMOR kompileer-opsie.
  • Het die SQLITE_REVERSE_UNORDERED_SELECTS kompileer-opsie bygevoeg.
  • Bygevoeg die opsie SQLITE_SORTER_PMASZ kompileer-tyd en die opsie SQLITE_CONFIG_PMASZ begin-tyd.
  • Het die SQLITE_CONFIG_PCACHE_HDRSZ opsie bygevoeg aan sqlite3_config () wat dit makliker maak vir programme om die toepaslike hoeveelheid geheue vir gebruik met SQLITE_CONFIG_PAGECACHE te bepaal.
  • Die aantal rye in 'n VALUES-klousule word nie meer deur SQLITE_LIMIT_COMPOUND_SELECT beperk nie.
  • Bygevoeg die eval.c-laai-uitbreiding wat 'n eval () SQL-funksie implementeer wat SQL op rekursiewe wyse sal evalueer.
  • Prestasieverbeterings:
  • Verminder die aantal memcpy () bedrywighede wat betrokke is by die balansering van 'n b-boom, vir 'n algemene prestasieverbetering van 3,2%.
  • Verbeteringe aan kosteberamings vir die optimalisering van skip-scan.
  • Die outomatiese indeksoptimalisering kan nou 'n gedeeltelike indeks genereer as dit toepaslik is.
  • Bug fixes:
  • Verseker duursaamheid na 'n kragverlies met "PRAGMA journal_mode = TRUNCATE" deur fsync () te noem, net nadat die joernaal lêer afgekap is.
  • Die navraagplanner erken nou dat enige kolom in die regterkantse tabel van 'n LEFT JOIN NULL kan wees, selfs as die kolom 'n NOT NULL-beperking het. Vermy probeer om NULL toetse in sulke gevalle te optimaliseer. Fix vir kaartjie 6f2222d550f5b0ee7ed.
  • Maak seker dat ORDER BY rye in stygende volgorde plaas, selfs al is die DISTINCT-operateur geïmplementeer met behulp van 'n afnemende indeks. Fix vir kaartjie c5ea805691bfc4204b1cb9e.
  • Bevestig data races wat onder stres kan voorkom wanneer daar met baie drade in gedeelde kas af gewerk word, waar sommige van die drade verbindings- en sluitingsverbindings is.
  • Bevestig duistere botsings wat deur die Amerikaanse fuzzy lop gevind word. Kaartjie a59ae93ee990a55.
  • Werk 'n GCC Optimizer-fout (vir gcc 4.2.1 op MacOS 10.7) om 'n uitbreiding van die R-Tree om foutiewe resultate te bereken wanneer dit saamgestel word met -O3.
  • Ander veranderinge:
  • Skakel die gebruik van die strchrnul () C-biblioteek roetine uit, tensy dit spesifiek geaktiveer is met die opsie -DHAVE_STRCHRNULL kompileer-opsie.
  • Verbeterings van die doeltreffendheid en akkuraatheid van die waarskynlikheid (), waarskynlik () en onwaarskynlik () SQL hint funksies.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 vir sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

Wat is nuut in weergawe 3.8.7.4:

  • Hierdie release fixes voeg in 'n mutex wat vereis word deur die veranderinge van die 3.8.7.3 pleister, maar is per ongeluk weggelaat. Die mutex is nie nodig deur enige interne SQLite toetse nie, maar Firefox crashes sonder dit. Toetsgevalle is bygevoeg om te verseker dat mutex nooit weer gemis word nie.

Wat is nuut in weergawe 3.8.7.3:

  • Bugfix: Maak seker dat die gekaste KeyInfo-voorwerpe ('n interne abstraksie nie vir die program sigbaar is nie) nie verouder word wanneer dit in gedeelde kas af gebruik word nie en sluit en herlaai sommige databasisverbindings dikwels terwyl ander databasisverbindings op dieselfde gedeelde kas oopgemaak word. voortdurend. Kaartjie e4a18565a36884b00edf.
  • Bugfix: Herken dat enige kolom in die regterkantse tabel van 'n LEFT JOIN NULL kan wees, selfs al het die kolom 'n NOT NULL-beperking. Moenie optimalisasies toepas wat aanvaar dat die kolom nooit NULL is nie. Kaartjie 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 vir sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

Wat is nuut in weergawe 3.8.7.2:

  • Die primêre rede vir hierdie weergawe is om die ROLLBACK-opdrag te verbeter sodat dit moontlik is om navrae op dieselfde databasisverbinding te laat loop om te bly hardloop solank die ROLLBACK nie die skema verander nie. In al die vorige weergawes van SQLite sal 'n ROLLBACK veroorsaak dat wagwoorde dadelik gestaak word en SQLITE_ABORT of SQLITE_ABORT_ROLLBACK terugbesorg. In afwagtende navrae word steeds ontbreek as die ROLLBACK die databasisskema verander, maar vanaf hierdie lapplaat word die navrae toegelaat om voort te gaan as die skema ongewysig is.
  • Bykomend tot die ROLLBACK-uitbreiding, bevat hierdie pleistervrystelling ook regstellings vir drie obskure foute.

Wat is nuut in weergawe 3.8.7.1:

  • Die hoofrede vir hierdie probleemoplossing is om 'n probleem aan te spreek met die opdatering van die waarde van velde aan die einde van 'n tabel wat bygevoeg is deur gebruik te maak van ALTER TABLE ADD COLUMN. Hierdie probleem 1 het die eerste keer in die 3.8.7-uitgawe verskyn.
  • Nog 'n geringe ergernis in die 3.8.7-vrylating was die feit dat die Android-gebou probeer om die strchrnul () funksie van die standaard C-biblioteek te gebruik, maar daardie funksie is nie op Android beskikbaar nie. Android-opgraderings moes -DHAVE_STRCHRNUL = 0 byvoeg om die probleem op te los. Hierdie pleister regmaak dit sodat Android-opgraderings nou sonder enige veranderinge moet werk.
  • Die werking van PRAGMA journal_mode = TRUNCATE is verbeter sodat dit fsync () aanroep nadat die joernaal lêer afgekap is wanneer PRAGMA sinchronous = FULL. Dit help om die duursaamheid van transaksies te behou in die geval van 'n kragverlies wat kort na commit plaasvind.
  • Uiteindelik is 'n paar langdurige en duistere probleme wat verband hou met die uitvoer van UPDATE en DELETE op VIEW's opgelos.

Wat is nuut in weergawe 3.8.7:

  • Die meeste van die veranderinge van die vorige weergawe is mikro-optimalisasies wat ontwerp is om SQLite te help om 'n bietjie vinniger te hardloop. Elke individuele optimalisering het 'n onmeetlike klein prestasie impak. Maar die verbeterings word bygevoeg. Gegee op 'n goed gedefinieerde werkslading (wat die SQLite-ontwikkelaars gebruik as 'n proxy vir 'n tipiese programwerklading) met behulp van cachegrind op Linux en saamgestel met gcc 4.8.1 en -Os op x64 Linux, maak die huidige weergawe meer as 20% meer werk vir dieselfde aantal SVE-siklusse in vergelyking met die vorige weergawe. Cachegrind is nie 'n ware SVE, en die werkslading wat gebruik word vir meting is slegs 'n proxy. Jou prestasie kan dus verskil. Ons verwag om omtrent die helfte van die gemeet en gerapporteerde verbetering in werklike toepassings te sien. 10% is minder as 20%, maar dit is steeds redelik goed, dink ons.
  • Hierdie weergawe bevat 'n nuwe stel C-taal-koppelvlakke wat nie-ondertekende 64-bis in plaas van 32-bis-lengteparameters het. Die nuwe API's bied nie nuwe vermoëns nie. Maar dit maak dit makliker om programme wat meer bestand is teen integer-oorloop kwesbaarhede te skryf.
  • Hierdie uitgawe sluit ook 'n nuwe sorter in wat verskeie drade kan gebruik om te help met groot soorte operasies. (Sorteerbewerkings word soms benodig om ORDER BY en / of GROEP BY-klousules te implementeer en is byna altyd benodig vir CREATE INDEX.) Die multi-thread sorter is standaard afgeskakel en moet geaktiveer word met die PRAGMA-draad SQL-opdrag. Let daarop dat die multi-threaded sorter vinniger real-time prestasie vir groot soorte, maar dit gebruik ook meer CPU siklusse en meer energie.

Wat is nuut in weergawe 3.8.3.1:

  • SQLite weergawe 3.8.3.1 maak 'n fout teenwoordig in weergawes 3.8.1, 3.8.2 en 3.8.3 wat navrae kan veroorsaak om geldige rye uit te skakel. Opgradering van hierdie weergawes word aanbeveel.
  • Die probleem kom eers op as SQLite saamgestel word met die opsies SQLITE_ENABLE_STAT3 of SQLITE_ENABLE_STAT4 kompileer-tyd. In die geval, as 'n navraag 'n WHERE-bepaling bevat wat uitdrukkings soos hierdie bevat:
  • WAAR (expr1 OF expr2 OF ... OF exprN) EN kolom is NIE NULL
  • Waar al expr1 deur exprN geskik is vir indekse, kan SQLite tydens die navraagbeplanning verkeerdelik die term "kolom IS NIE NULL" omskep in "kolom> NULL". Maar laasgenoemde term is nooit waar nie, en daarom sal die navraag geen rye weergee nie.

Wat is nuut in weergawe 3.8.3:

  • Bygevoeg ondersteuning vir algemene tafel uitdrukkings en die MET klousule.
  • Bygevoeg die printf () SQL-funksie.
  • Bygevoeg SQLITE_DETERMINISTIC as 'n opsionele bietjie in die 4de argument na die sqlite3_create_function () en verwante koppelvlakke, wat toepassings bied met die vermoë om nuwe funksies te skep wat uit innerlike lusse uitgereik kan word wanneer hulle konstante argumente het.
  • Voeg SQLITE_READONLY_DBMOVED foutkode by, wat aan die begin van 'n transaksie teruggegee word, om aan te dui dat die onderliggende databasislêer onder SQLite hernoem of verwyder is.
  • Laat arbitrêre uitdrukkings, insluitend funksie oproepe en subkwessies, in die lêernaam argument aan ATTACH.
  • Laat 'n VALUES-klousule toe waar 'n SELECT-stelling geldig is.
  • Die PRNG wat deur sqlite3_randomness (N, P) gebruik word, word as N == 0 aangevra. Herhaal outomaties na 'n vurk () op unix.
  • Verbeter die virtuele tabel spellfix1 sodat dit doeltreffend kan soek deur roei.
  • Prestasieverbeterings.
  • Verbeteringe van die kommentaar in die VDBE-byte-kode vertoon wanneer EXPLAIN uitgevoer word.
  • Voeg die "% token_class" -richtlijn by LEMON parser generator en gebruik dit om die grammatika te vereenvoudig.
  • Verander die bronkode van LEMON om te voorkom dat u C-biblioteekfunksies skakel wat OpenBSD gevaarlik beskou. (Ex: sprintf).
  • Probleemoplossing: maak nie 'n veld in die CSV-invoer funksie van die opdrag skerm wanneer 'n dubbele kwotasie ontsnap word aan die einde van 'n CRLN-lyn.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 vir sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

Soortgelyke sagteware

ArangoDB
ArangoDB

17 Feb 15

Apache Xindice
Apache Xindice

2 Jun 15

Qercus
Qercus

14 Apr 15

CloverETL Designer
CloverETL Designer

17 Feb 15

Kommentaar te SQLite

Kommentaar nie gevind
Kommentaar te lewer
Draai op die foto!