SQLite

Programinė įranga Screenshot:
SQLite
Programinė detalės:
Versija: 3.24.0 Atnaujintas
Įkėlimo datą: 22 Jun 18
Kūrėjas: D. Richard Hipp
Licencija: Nemokamai
Populiarumas: 21

Rating: 5.0/5 (Total Votes: 1)

SQLite yra atviro kodo, daugialypės terpės, laisvosios ir mažos bibliotekos C, kuri įgyvendina savarankišką, įterptinį, sandorių, serverių ir nulinės konfigūracijos SQL duomenų bazės variklį. Tai pasaulyje labiausiai naudojamas SQL duomenų bazės variklis.


Savybės iš pirmo žvilgsnio

Pagrindinės funkcijos apima paramą atskiroms, atominėms, ilgalaikiam ir nuosekliems sandoriams, SQL92 įgyvendinimą, duomenų bazių failus galima laisvai dalytis tarp kompiuterių, palaiko iki 2 terabaitų duomenų bazes, palaiko gigabaitų dydžio piktogramas ir eilutes, mažą kodo pėdsaką, kaip taip pat paprastas naudoti ir labai paprastas API (Application Programming Interface).

Be to, SQLite nereikalauja pradinės konfigūracijos ar tolesnio administravimo, todėl kūrėjai gali saugoti visą duomenų bazę viename kryžminio disko rinkmenoje, kuri puikiai tinka naudoti programų formato failus, neturi išorinių priklausomybių, TCL (įrankių valdymo kalbą) ir išsamūs dokumentai.

Yra daugybė kitų programavimo kalbų susiejimų atskirai. Jo šaltinio kodas yra gerai komentuojamas ir jis pateikiamas su atskiru CLI (komandinės eilutės sąsaja) klientu, kuris buvo sukurtas iš kompensavimo, kuris bus naudojamas SQLite duomenų bazių administravimui.


Ką galiu jį naudoti?

"SQLite" duomenų bazės variklis gali būti naudojamas bet kokiam tikslui, asmeniniam ar komerciniam naudojimui. Siūlomi "SQLite" naudojimo būdai yra programinės įrangos duomenų bazė, svetainės duomenų bazė, įmonės standžiajame (RDBMS) (Reliacinės duomenų bazės valdymo sistemos) standusis režimas, taip pat programų failo formatas.


Pagal gaubtą ir palaikomas operacines sistemas

SQLite paskirstymas ateina su atskira komandinės eilutės prieigos programa (sqlite), kuri gali būti naudojama SQLite duomenų bazės administravimui ir kuri yra pavyzdys, kaip naudoti SQLite biblioteką. Tai visiškai parašyta ANSI-C programavimo kalba.

Palaikomos operacinės sistemos apima GNU / Linux, Mac OS X ir Microsoft Windows. Palaikomos mobiliosios operacinės sistemos apima "Android" ir "iOS". Tai buvo sėkmingai išbandyta tiek 32 bitų, tiek 64 bitų aparatinės įrangos platformomis, ir ji lengvai perkeliama į kitas OS.

Kas naujo šiame leidime:

  • Svarbiausi šio leidimo aspektai yra "PostgreSQL" tipo UPSERT palaikymas ir geresnis našumas, ypač už ORDER BY LIMIT užklausas.

Kas naujo versijoje:

  • Pasinaudokite atminties rašymo galimybėmis, esant F2FS failų sistemai, jei tai yra įmanoma, kad būtų žymiai sumažinta operacijų našta. Šiuo metu reikalinga SQLITE_ENABLE_BATCH_ATOMIC_WRITE sudarymo laiko parinktis.
  • Leisti ATTACH ir DETACH komandas veikti sandorio viduje.
  • Leisti be ROWID virtualių stalų būti rašomi, jei PRIMARY KEY turi tiksliai vieną stulpelį.
  • "fsync ()" & quot; kuris atsiranda po to, kai antraštė yra įrašyta WAL nustatymui iš naujo, dabar naudoja sinchronizavimo nustatymus tikrinimo punktuose. Tai reiškia, kad bus naudojamas "fullfsync" jei kompiuteryje yra PRAGMA checkpoint_fullfsync.
  • "sqlite3_sourceid ()" funkcija bando nustatyti, ar šaltinio kodas buvo pakeistas nuo to, kuris yra patikrintas versijos valdyme, ir jei yra pakeitimų, paskutiniai keturi versijos maišos simboliai rodomi kaip "alt1" arba "alt2". Tikslas yra aptikti atsitiktinius ir (arba) neatsargius pakeitimus. Dekoratorius gali sugadinti šią funkciją.
  • Geresnė stulpelių pavadinimų išbraukimas iš CREATE TABLE AS teiginių su bendros užklausos dešinėje pusėje.
  • Mažiau & quot; stat () & quot; sistemos skambučiai, kuriuos išleido "unix VFS".
  • Pagerino LIKE optimizavimą, kad jis veiktų su ESCAPE išlyga.
  • Patobulinta PRAGMA integrity_check ir PRAGMA quick_check, norėdami aptikti neaiškios eilės korupciją, kurios anksčiau jos trūko. Taip pat atnaujinkite abu pragmus, kad jie grąžintų klaidos tekstą, o ne SQLITE_CORRUPT, kai susiduria su korupcija įrašuose.
  • Užklausų planavimo priemonė dabar nori įdiegti sub-užduotis FROM-clause naudodami bendrus veiksmus, o naudodami užklausos supaprastinto optimizavimo metodą. Parama bendram užklausų naudojimui pakartotinėms užklausoms daugiau nebegalima išjungti.
  • Pateikite informaciją apie! =, IS, IS NOT, NOT NULL ir IS NULL apribojimus virtualių lentelių xBestIndex metodu.
  • Pagerino CSV virtualią lentelę, kad ji priimtų paskutinę įvesties eilutę, jei trūksta galutinio naujo eilutės simbolio.
  • Pašalinkite retai naudojamą "nulio" & quot; atminties paskirstytojas. Pakeiskite jį SQLITE_CONFIG_SMALL_MALLOC konfigūracijos nustatymu, kuris suteikia "SQLite" užuominą, kad, kai įmanoma, reikėtų vengti didelių atminčių.
  • Pridėta "Swarm" virtualios lentelės prie esamo prisijungimo virtualaus stalo plėtinio.
  • Pridėta sqlite_dbpage virtualios lentelės, kuria galima tiesiogiai pasiekti duomenų bazės failo puslapius. Šaltinio kodas integruojamas į sujungimą ir aktyvuojamas naudojant -DSQLITE_ENABLE_DBPAGE_VTAB kompiliacijos laiko parinktį.
  • Pridėkite naują fts5vocab virtualios lentelės tipą - & quot; instancija & quot; - tai užtikrina tiesioginę prieigą prie viso teksto indekso FTS5 žemiausiu įmanomu lygiu.
  • Pašalinkite kvietimą į rand_s () "Windows VFS", nes kai kuriose senesnėse nešiojamosiose kompiuteriuose "Firefox" sukėlė problemų.
  • Išeities kodą src / shell.c komandų eilutės apvalkale nebėra versijų valdymo. Šis failas dabar yra sukurtas kaip kūrimo proceso dalis.
  • Įvairios mikrooptimizacijos sumažina procesoriaus naudojimą apie 2,1%.
  • Klaidų pataisymai:
  • Nustatyti klaidingą teiginį (), kurį aptiko OSSFuzz. Bilietas cb91bf4290c211d
  • Nustatykite silpną atminties nutekėjimą sqlite3_result_pointer (). Bilietas 7486aa54b968e9b
  • Venkite galimos klaidos naudojimo be laidų, atidėję schemos iš naujo, kol po to, kai užklausos planavimo priemonė bus paleista. Bilietas be436a7f4587ce5
  • Naudokite tik indeksus-išraiškas, kad optimizuotumėte ORDER BY arba GROUP BY, jei COLLATE yra teisingas. Bilietas e20dd54ab0e4383
  • Nustatykite patvirtinimo klaidą, kuri atsiranda, kai išraiška rodyklės išraiškose yra iš tikrųjų pastovi. Bilietas aa98619ad08ddca
  • Nustatykite patvirtinimo gedimą, kuris gali atsirasti po PRAGMA reverse_unordered_selects. Bilietas cb91bf4290c211d
  • Nustatykite segfault, kuris gali atsirasti dėl užklausų, kurios naudoja lentelėje įvertintas funkcijas IN arba EXISTS subquery. Bilietas b899b6042f97f5
  • Nustatykite galimą sveiku skaičiaus perpildymo problemą sukurdami ypač siaubingą bendrą lentelės išraišką. Tai buvo dar viena problema, kurią nustatė OSSFuzz. Užsiregistruokite 6ee8cb6ae5.
  • Nustatykite potencialų netikslinį skaitymą, užklausdami sugadintą duomenų bazės failą, kurį Natalie Silvanovich nustatė iš "Google Project Zero". Apsilankymas 04925dee41a21f.

Kas naujo 3.20.1 versijoje:

  • Pakeitimo versija 3.20.1 pakeičia dvi kodo eilutes sqlite3_result_pointer () sąsajoje, kad būtų pašalintos retos atminties nutekėjimai.

Kas naujo 3.9.2 versijoje:

  • SQLite versija 3.9.2 yra pleistras, leidžiantis nustatyti du neaiškius klaidas.

Kas naujo 3.8.9 versijoje:

  • Naujos šio leidimo funkcijos apima komandą PRAGMA index_xinfo, sqlite3_status64 () sąsają ir komandų eilutės apvalkalo ".dbinfo" komandą.

Kas naujo 3.8.8.2 versijoje:

  • 3.8.8.2 pleistras išleidžia vieną nepilną problemą: ji užtikrina, kad operacija sqlite3_wal_checkpoint (TRUNCATE) visada sutrumpins įvesties žurnalą, net jei žurnalas jau buvo iš naujo nustatytas ir jame nėra naujo turinio. Neaišku, ar tai yra klaidų taisymas ar nauja funkcija.
  • Kažkas panašaus įprastai pereis į kitą reguliarų išleidimą, bet žinomam "SQLite" naudotojui reikėjo skubėti, todėl pasidžiaugėme jį išplėsti per šį pataisą.
  • Nėra pagrindo atnaujinti, nebent iš tikrųjų reikia didesnio sqlite3_wal_checkpoint (TRUNCATE) elgesio.

Kas naujo 3.8.8.1 versijoje:

  • Išspręskite klaidą rūšiavimo logikoje, pateiktoje nuo 3.8.4 versijos, dėl kurios užklausos, kuriose yra ORDER BY išlyga, yra sąlyga "LIMIT" ir kurios turi maždaug 60 arba daugiau stulpelių, gali sukelti išvesties klaidingą užsakymą. rezultatas nustatytas. Bilietas f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

Kas naujo 3.8.8 versijoje:

  • Naujos funkcijos:
  • Pridėjo komandą PRAGMA data_version, kuri gali būti naudojama nustatant, ar duomenų bazės failas buvo pakeistas kitu procesu.
  • Pridėjo SQLITE_CHECKPOINT_TRUNCATE parinktį į sqlite3_wal_checkpoint_v2 () sąsają su atitinkamomis PRAGMA wal_checkpoint patobulinimų.
  • Pridėta sqlite3_stmt_scanstatus () sąsaja, prieinama tik tada, kai sukompiliuota su SQLITE_ENABLE_STMT_SCANSTATUS.
  • "sqlite3_table_column_metadata () yra patobulintas, kad būtų galima tinkamai veikti be lentelių be eilučių ir patikrinti, ar egzistuoja lentelė, jei stulpelio pavadinimo parametras yra NULL. Sąsaja dabar taip pat įtraukiama į "build" pagal nutylėjimą, nereikalaujant SQLITE_ENABLE_COLUMN_METADATA sukūrimo laiko.
  • Pridėta SQLITE_ENABLE_API_ARMOR kompiliacijos laiko parinktis.
  • Pridėjo SQLITE_REVERSE_UNORDERED_SELECTS kompiliacijos laiko parinktį.
  • Pridėjo SQLITE_SORTER_PMASZ kompiliacijos laiko parinktį ir pradžios laiko SQLITE_CONFIG_PMASZ parinktį.
  • Pridėjo SQLite_CONFIG_PCACHE_HDRSZ parinktį sqlite3_config (), todėl programoms būtų lengviau nustatyti tinkamą atmintinės kiekį, naudojamą su SQLITE_CONFIG_PAGECACHE.
  • Ribų skaičius, pateiktas VALUES sąlygose, nebėra ribojamas pagal SQLITE_LIMIT_COMPOUND_SELECT.
  • Pridėtas "eval.c" įkeliamasis plėtinys, įgyvendinantis SQL funkciją eval (), kuri rekursyviai įvertins SQL.
  • "Performance Enhancements":
  • Sumažinkite "b-tree" balansavimo operacijų memcpy () skaičių, kad bendras našumo padidėjimas būtų 3,2%.
  • Išlaidų įvertinimų tobulinimas, kai atliekama nepertraukiamo skenavimo optimizavimo.
  • Automatinis indeksavimo optimizavimas dabar gali kurti dalinį indeksą, jei tai yra tinkama.
  • Klaidų pataisymai:
  • Užtikrinkite ilgaamžiškumą po "PRAGMA journal_mode = TRUNCATE", iškviečiant fsync () iškart po žurnalo failo nutraukimo.
  • Užklausos planavimo priemonė dabar atpažįsta, kad bet kuris stulpelis dešiniajame kairiajame kairiajame staliniame stulpelyje gali būti NULL, net jei stulpelyje yra NE NULL apribojimas. Tokiais atvejais nenorite bandyti optimizuoti NULL testų. Fix for ticket 6f2222d550f5b0ee7ed.
  • Įsitikinkite, kad ORDER BY išdėsto eilutes didėjimo tvarka, net jei DISTINCT operatorius įdiegtas taikant mažėjantį indeksą. Fiksuokite bilietą c5ea805691bfc4204b1cb9e.
  • Nustatykite duomenų rases, kurios gali atsirasti dėl streso, kai naudojate daugybę temų bendro naudojimo talpyklos režime, kai kai kurie iš temų yra atidarymo ir uždarymo jungtys.
  • Ištaisykite neapibrėžtų klaidų klaidas, kurias nustatė amerikietiška "Fuzzy Lop". Bilietas a59ae93ee990a55.
  • Apsispręskite GCC optimizavimo klaidą (gcc 4.2.1, MacOS 10.7), dėl kurios R-Tree plėtinys sukūrė -O3 sukūrė neteisingus rezultatus.
  • Kiti pakeitimai:
  • Išjunkite "strchrnul ()" bibliotekos "C" bibliotekos tvarką, nebent ji būtų specialiai įjungta naudojant "-DHAVE_STRCHRNULL" kompiliavimo laiko parinktį.
  • Tikėtina (), tikėtina () ir netikėtina () SQL užuominų funkcijų efektyvumo ir tikslumo gerinimas.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

Kas naujo 3.8.7.4 versijoje:

  • Šis išleidimo pataisymas prideda mutexą, kurio reikalaujama pakeičiant 3.8.7.3 pataisą, bet buvo atsitiktinai praleistas. "Mutex" nereikalavo jokie vidiniai "SQLite" testai, tačiau be jo "Firefox" sugenda. Buvo pridėta bandomųjų atvejų, siekiant užtikrinti, kad mutex niekada nebūtų praleistas.

Kas naujo 3.8.7.3 versijoje:

  • Klaidų taisymas: įsitikinkite, kad talpykloje esantys KeyInfo objektai (vidinė abstrakcija, kurios nėra matomos programai) neveikia, kai veikia bendrojo talpyklos režimu, dažnai uždarant ir iš naujo atidarius kai kurias duomenų bazės jungtis, paliekant kitus duomenų bazės jungtis vienoje bendrinamoje talpykloje nuolat. Bilietas e4a18565a36884b00edf.
  • Klaidos pataisa: Atpažįsta, kad bet kuris stulpelis dešiniajame kairiajame stulpelyje LĖŠAS JOIN gali būti NULL, net jei stulpelyje yra NE NULL apribojimas. Nenaudokite optimizavimo, pagal kuriuos stulpelis niekada NULL. Bilietas 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

Kas naujo 3.8.7.2 versijoje:

  • Pagrindinė šio leidimo priežastis - sustiprinti komandą ROLLBACK, kad ji galėtų vykdyti užklausimus toje pačioje duomenų bazės jungtyje, kad būtų galima tęsti darbą, kol ROLLBACK schema nesikeičia. Visose ankstesnėse SQLite versijose, ROLLBACK gali sukelti laukiančias užklausas nedelsiant sustabdyti ir grąžinti SQLITE_ABORT arba SQLITE_ABORT_ROLLBACK. Laukiančios užklausos vis tiek nutraukiamos, jei ROLLBACK pakeičia duomenų bazės schemą, tačiau nuo šio pleistro paleidimo užklausas leidžiama tęsti, jei schema nėra pakeista.
  • Be "ROLLBACK" priedo, šiame pataisų leidime taip pat pateikiami pataisymai trims neaiškioms klaidoms.

Kas naujo 3.8.7.1 versijoje:

  • Pagrindinė šios klaidos išleidimo priežastis - išspręsti problemą atnaujinant laukų reikšmę lentelės pabaigoje, kurios buvo pridėtos naudojant ALTER TABLE ADD COLUMN. Ši problema 1 pirmą kartą pasirodė 3.8.7 spaudai.
  • Dar vienas mažas erzinimas 3.8.7 spaudai buvo tai, kad "Android" kūrimas bandė naudoti "strchrnul () funkciją iš standartinės" C "bibliotekos, bet ši funkcija nėra" Android ". "Android" kūrėjai turėjo pridėti -DHAVE_STRCHRNUL = 0, kad išspręstų problemą. Šis pataisas nustato, kad "Android" kūrimas turėtų veikti be jokių pakeitimų.
  • PRAGMA journal_mode = TRUNCATE veikimas buvo patobulintas, kad po to, kai PRAGMA sinchroniškai = FULL, po žurnalo failo nutraukimo jis fsync () pradeda veikti. Tai padeda išsaugoti sandorio ilgaamžiškumą, kai galia prarandama netrukus po įsipareigojimo.
  • Galiausiai pataisytos dvi ilgalaikės ir neaiškios problemos, susijusios su "UPDATE" ir "DELETE" peržiūromis.

Kas naujo 3.8.7 versijoje:

  • Dauguma ankstesnio laidinio pakeitimų buvo mikro-optimizacijos, skirtos padėti SQLite paleisti šiek tiek greičiau. Kiekvienas individualus optimizavimas turi neįtikėtinai mažą našumą. Bet patobulinimai susilieja. Išmatuotas pagal gerai apibrėžtą darbo krūvį (kurį SQLite kūrėjai naudoja kaip tipinę programos darbo krūvį) naudojant "cachegrind" sistemoje "Linux" ir kompiliuojama su "gcc 4.8.1" ir "o" operacine sistema "x64 linux", dabartinė versija leidžia dirbti daugiau nei 20% tas pats CPU ciklų skaičius, palyginti su ankstesniu leidimu. Cachegrind nėra tikrasis procesoriaus, o matavimui naudojamas darbo krūvis yra tik tarpinis serveris. Taigi jūsų našumas gali skirtis. Mes tikimės pamatyti maždaug pusę išmatuotų ir pranešimų apie realių taikomųjų programų patobulinimus. 10% mažiau nei 20%, bet mes vis dar gana gerai.
  • Šiame leidime yra naujas C-kalbos sąsajų rinkinys, turintis nepasirašytą 64 bitų vietoj pasirašytų 32 bitų ilgio parametrų. Naujos API nenumato naujų galimybių. Tačiau jie padeda kurti programas, kurios yra labiau atsparios integruotų perpildymo pažeidžiamumui.
  • Šis leidimas taip pat apima naują rūšiuotoją, kuris gali naudoti keletą temų, kad padėtų atlikti didelius rūšiuoti operacijas. (Kartais reikia atlikti tvarkymo operacijas ORDER BY ir / arba GROUP BY ir beveik visada reikalingos CREATE INDEX.) Daugelio temų rūšiavimas pagal nutylėjimą yra išjungtas ir turi būti įjungtas naudojant PRAGMA thread SQL komandą. Atkreipkite dėmesį, kad daugiasluoksnis rūšiuotuvas užtikrina greitesnį realaus laiko našumą didelėms rūšims, tačiau jis taip pat naudoja daugiau procesoriaus ciklų ir daugiau energijos.

Kas naujo 3.8.3.1 versijoje:

  • SQLite 3.8.3.1 versija nustato klaidą, esančią 3.8.1, 3.8.2 ir 3.8.3 versijose, kurios gali sukelti užklausų klaidingą eilučių praleidimą. Rekomenduojama atnaujinti iš tų versijų.
  • Problema kyla tik jei SQLite yra sudarytas naudojant SQLITE_ENABLE_STAT3 arba SQLITE_ENABLE_STAT4 kompiliacijos laiko parinktis. Tokiu atveju, jei užklausoje yra WHERE sąlyga, kurioje yra tokios išraiškos:
  • KUR (expr1 OR expr2 OR ... OR exprN) IR stulpelis IS NOT NULL
  • Kai visi expr1 iš exprN tinkami naudoti pagal indeksus, tada užklausų planavimo SQLite gali klaidingai paversti "stulpelio IS NOT NULL" sąvoką į "stulpelis & gt; NULL". Tačiau pastarasis terminas niekada nėra teisingas, todėl užklausoje nebus grąžintos eilutės.

Kas naujo 3.8.3 versijoje:

  • Pridėjo bendrų lentelių išraiškos ir "clause".
  • Pridėta SQL funkcijos printf ().
  • Pridėtas SQLITE_DETERMINISTIC kaip papildomas ketvirtasis argumentas sqlite3_create_function () ir susijusioms sąsajoms, suteikiantis programoms galimybę kurti naujas funkcijas, kurias galima nustatyti iš vidinių kilpų, kai jie turi nuolatinius argumentus.
  • Pridėkite SQLITE_READONLY_DBMOVED klaidos kodą, grįžtą sandorio pradžioje, kad nurodytumėte, kad pagrindinis duomenų bazės failas buvo pervadintas arba išbrauktas iš "SQLite".
  • Pateikti failo pavadinimo argumentą į ATTACH leisti savavališkai išreikštas frazes, įskaitant funkcijų skambučius ir paprogrames.
  • Leisti VALUES išlygą naudoti visur, kur yra teisingas SELECT teiginys.
  • Išskalaudžiamas PRNG, naudojamas sqlite3_randomness (N, P), kai jį sukelia N == 0. Automatiškai atsinaujina po "unix" fork ().
  • Pagerinkite spellfix1 virtualųjį stalą, kad jis galėtų efektyviai ieškoti eilės tvarka.
  • našumo patobulinimai.
  • VDBE baitų kodo rodymo komentarų patobulinimai paleidžiant EXPLAIN.
  • Pridėkite "% token_class" direktyvą su LEMON analizatoriaus generatoriumi ir naudokite ją gramatikos supaprastinimui.
  • Pakeiskite "LEMON" šaltinio kodą, kad išvengtumėte "C" bibliotekos funkcijų, kurias "OpenBSD" laiko pavojingomis. (Pvz., "Sprintf").
  • Klaidos ištaisymas: komandų eilutės lakšto CSV importavimo funkcijoje neuždarykite lauko, kai išjungta dviguba citata įvyksta CRLN eilutės pabaigoje.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

Panaši programinė įranga

GT.M
GT.M

18 Feb 15

MariaDB
MariaDB

20 Jan 18

MySQL-Connector
MySQL-Connector

11 May 15

Komentarai SQLite

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!