SQLite

Skjermbilde programvare:
SQLite
Prog.varedetaljer:
Versjon: 3.24.0 Oppdatert
Last opp dato: 22 Jun 18
Utvikler: D. Richard Hipp
Lisens: Gratis
Popularitet: 21

Rating: 5.0/5 (Total Votes: 1)

SQLite er en åpen kildekode, multiplatform, gratis og lite C-bibliotek som implementerer en selvstendig, innebygd, transaksjonell, serverløs og null konfigurasjons SQL databasemotor. Det er verdens mest brukte SQL-databasemotor.


Funksjoner med et blikk

Viktige funksjoner inkluderer støtte for isolerte, atomære, holdbare og konsekvente transaksjoner, SQL92-implementering, databasefiler kan deles fritt mellom datamaskiner, støtter databaser på opptil 2 terabyte, støtte for gigabyte-størrelse blokker og strenge, lite kodeavtrykk, som vel som en enkel å bruke og veldig enkel API (Application Programming Interface).

I tillegg krever SQLite ikke opprinnelig konfigurasjon eller videreadministrasjon, tillater utviklere å lagre en komplett database i en enkelt plattform diskfil, som er perfekt for bruk av applikasjonsfilformater, uten eksterne avhengigheter, i TCL (Tool Command Language) bindinger og omfattende dokumentasjon.

Bindinger for mange andre programmeringsspråk er tilgjengelig separat. Kildekoden er godt kommentert, og den kommer med en frittstående CLI (Command-Line Interface) klient som er designet fra offset for å bli brukt til administrasjon av SQLite databaser.


Hva kan jeg bruke det til?

SQLite-databasemotoren kan brukes til ethvert formål, personlig eller kommersiell. Foreslåtte bruksområder for SQLite inkluderer database for gadgets, nettside database, stand-in for en bedrift RDBMS (Relational Database Management System), samt applikasjonsfilformat.


Under hetten og støttede operativsystemer

SQLite-distribusjonen kommer med et frittstående kommandolinjeprogram (sqlite) som kan brukes til å administrere en SQLite-database, og som tjener som et eksempel på hvordan man bruker SQLite-biblioteket. Det er skrevet helt i ANSI-C programmeringsspråket.

Støttede stasjonære operativsystemer inkluderer GNU / Linux, Mac OS X og Microsoft Windows. Støttede mobile operativsystemer inkluderer Android og iOS. Det har blitt testet med både 32-biters og 64-biters maskinvareplattformer, og det er lett bærbart til andre operativsystemer.

Hva er nytt i denne versjonen:

  • Høydepunkter i denne utgaven inkluderer støtte for PostgreSQL-stil UPSERT og forbedret ytelse, spesielt for ORDER BY LIMIT-spørringer.

Hva er nytt i versjon:

  • Dra fordel av atom-skrive-funksjonene i F2FS-filsystemet når det er tilgjengelig, for kraftig redusert transaksjonsoverhead. Dette krever for øyeblikket SQLITE_ENABLE_BATCH_ATOMIC_WRITE kompileringstid-alternativet.
  • Tillat ATTACH- og DETACH-kommandoer til å fungere inne i en transaksjon.
  • Tillat UTEN ROWID virtuelle tabeller å skrivbare hvis PRIMARY KEY inneholder nøyaktig en kolonne.
  • "Fsync ()" som oppstår etter at overskriften er skrevet i en WAL-tilbakestilling, bruker nå synkroniseringsinnstillingene for kontrollpunkter. Dette betyr at den vil bruke en "fullfsync" på mac hvis PRAGMA checkpoint_fullfsync satt på.
  • Funksjonen sqlite3_sourceid () forsøker å oppdage om kildekoden er endret fra det som er sjekket inn i versjonskontrollen, og hvis det er modifikasjoner, vises de siste fire tegnene i versjonens hash som "alt1" eller "alt2". Målet er å oppdage utilsiktede og / eller uforsiktig redigeringer. En forfalsker kan undergrave denne funksjonen.
  • Forbedret avnotering av kolonneavn for CREATE TABLE AS-setninger med en samlet spørring på høyre side.
  • Færre "stat ()" systemanrop utstedt av Unix VFS.
  • Forbedret LIKE optimalisering slik at den fungerer med en ESCAPE-klausul.
  • Forbedret PRAGMA integity_check og PRAGMA quick_check for å oppdage uklar røde korrupsjon som de tidligere manglet. Oppdater også begge pragmas slik at de returnerer feiltekst i stedet for SQLITE_CORRUPT når det oppstår korrupsjon i poster.
  • Spørringsplanleggeren foretrekker nå å implementere FROM-clause-undersøkelser ved hjelp av samrutiner, snarere ved hjelp av spørringsplaneringsoptimalisering. Støtte for bruk av samrutiner for underforespørsler kan ikke lenger være deaktivert.
  • Passer informasjon om! =, IS, ER IKKE, IKKE NULL, og er NULL-begrensninger i xBestIndex-metoden for virtuelle tabeller.
  • Forbedret CSV virtuelt bord slik at det aksepterer den siste raden med inntasting hvis den endelige linjen for ny linje mangler.
  • Fjern den sjelden brukte "skrape" minne allocator. Erstatt den med SQLITE_CONFIG_SMALL_MALLOC konfigurasjonsinnstillingen som gir SQLite et hint at store minneallokeringer bør unngås når det er mulig.
  • Lagt til den virtuelle virtuelle tabellen for den virtuelle tabellen.
  • Lagt til virtuelle tabellen sqlite_dbpage for å gi direkte tilgang til sider i databasefilen. Kildekoden er innebygd i sammenslåingen og aktiveres ved hjelp av alternativet -DSQLITE_ENABLE_DBPAGE_VTAB kompileringstid.
  • Legg til en ny type virtuelt bord fts5vocab - "instance" - som gir direkte tilgang til en FTS5 fulltekstindeks på lavest mulig nivå.
  • Fjern et anrop til rand_s () i Windows VFS siden det forårsaket problemer i Firefox på noen eldre bærbare datamaskiner.
  • Kildekoden src / shell.c til kommandolinjeskallet er ikke lenger under versjonskontroll. Denne filen er nå generert som en del av byggeprosessen.
  • Diverse mikrooptimeringer reduserer CPU-bruken med om lag 2,1%.
  • Feilrettelser:
  • Løs en feilaktig påstand () setning oppdaget av OSSFuzz. Billett cb91bf4290c211d
  • Løs en uklar minnelekkasje i sqlite3_result_pointer (). Billett 7486aa54b968e9b
  • Unngå en mulig bruk-etter-fri feil ved å utsette skjema-tilbakestillinger til etter at spørringsplanleggeren er ferdig. Billett be436a7f4587ce5
  • Bruk bare indekser på uttrykk for å optimalisere ORDER BY eller GROUP BY hvis COLLATE er riktig. Billett e20dd54ab0e4383
  • Lag en påstands feil som kom opp når uttrykket i en indeks på uttrykk er virkelig en konstant. Billett aa98619ad08ddca
  • Lag en påstands feil som kan oppstå etter PRAGMA reverse_unordered_selects. Billett cb91bf4290c211d
  • Løs en segfault som kan forekomme for spørsmål som bruker tabellverdierte funksjoner i en IN eller EXISTS-undersøkelse. Billett b899b6042f97f5
  • Løs et potensielt helhetsoverløpsproblem når du lager et spesielt forferdelig vanlig borduttrykk. Dette var et annet problem oppdaget av OSSFuzz. Innsjekking 6ee8cb6ae5.
  • Løs en potensiell utgående bånd når du spør om en korrupt databasefil, et problem oppdaget av Natalie Silvanovich av Google Project Zero. Innsjekking 04925dee41a21f.

Hva er nytt i versjon 3.20.1:

  • Utgaven av versjon 3.20.1 oppdatering endrer to linjer med kode i sqlite3_result_pointer () -grensesnittet for å fikse en sjelden minnelekkasje.

Hva er nytt i versjon 3.9.2:

  • SQLite versjon 3.9.2 er en patch release som fester to obskure bugs.

Hva er nytt i versjon 3.8.9:

  • Nye funksjoner i denne utgaven inkluderer kommandoen PRAGMA index_xinfo, sqlite3_status64 () grensesnittet og kommandoen ".dbinfo" på kommandolinjeskallen.

Hva er nytt i versjon 3.8.8.2:

  • Utgivelsen 3.8.8.2 oppdaterer et enkelt mindre problem: Det sikrer at sqlite3_wal_checkpoint (TRUNCATE) -operasjonen alltid vil avkorte loggboken, selv om loggen allerede var tilbakestilt og ikke inneholdt nytt innhold. Det er uklart om dette er en feilrettelse eller en ny funksjon.
  • Noe som dette ville normalt gå inn i neste regelmessig planlagt utgivelse, men en fremtredende SQLite-bruker trengte endringen i en hast, så vi var glade for å haste det ut via denne oppdateringen.
  • Det er ingen grunn til å oppgradere med mindre du virkelig trenger den forbedrede oppførselen til sqlite3_wal_checkpoint (TRUNCATE).

Hva er nytt i versjon 3.8.8.1:

  • Løs en feil i sorteringslogikken, som er presentert siden versjon 3.8.4, som kan føre til at utdata vises i feil rekkefølge på spørsmål som inneholder en ORDER BY-klausul, en LIMIT-setning, og som har ca. 60 eller flere kolonner i Resultatet sett. Billett f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 for sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

Hva er nytt i versjon 3.8.8:

  • Nye funksjoner:
  • Lagt til kommandoen PRAGMA data_version som kan brukes til å avgjøre om en databasefil er endret av en annen prosess.
  • Lagt til SQLITE_CHECKPOINT_TRUNCATE-alternativet til sqlite3_wal_checkpoint_v2 () grensesnittet, med tilsvarende forbedringer til PRAGMA wal_checkpoint.
  • Lagt til sqlite3_stmt_scanstatus () -grensesnittet, bare tilgjengelig når det er kompilert med SQLITE_ENABLE_STMT_SCANSTATUS.
  • Den sqlite3_table_column_metadata () er forbedret for å fungere riktig på UTEN ROWID-tabeller og for å sjekke at det finnes et tabell hvis kolonnens navneparameter er NULL. Grensesnittet er nå også inkludert i byggingen som standard uten å kreve SQLITE_ENABLE_COLUMN_METADATA kompileringstid-alternativet.
  • Lagt til SQLITE_ENABLE_API_ARMOR kompileringstid-alternativet.
  • Lagt til SQLITE_REVERSE_UNORDERED_SELECTS kompileringstid-alternativet.
  • Lagt til SQLITE_SORTER_PMASZ kompileringstid og SQLITE_CONFIG_PMASZ starttidsposisjon.
  • Lagt til SQLITE_CONFIG_PCACHE_HDRSZ alternativet til sqlite3_config () som gjør det lettere for applikasjoner å bestemme riktig mengde minne for bruk med SQLITE_CONFIG_PAGECACHE.
  • Antallet av rader i en VALUES-klausul er ikke lenger begrenset av SQLITE_LIMIT_COMPOUND_SELECT.
  • Lagt til eval.c belastbar forlengelse som implementerer en eval () SQL-funksjon som vil rekursivt evaluere SQL.
  • Ytelsesforbedringer:
  • Reduser antall memcpy () -operasjoner som er involvert i å balansere et b-tre, for 3,2% generell ytelse.
  • Forbedringer i kostnadsoverslagene for hopp-optimalisering.
  • Den automatiske indekseringsoptimaliseringen kan nå generere en delvis indeks hvis det passer.
  • Feilrettelser:
  • Sikre holdbarhet etter et strømbrudd med "PRAGMA journal_mode = TRUNCATE" ved å ringe fsync () rett etter å ha avkortet journalfilen.
  • Spørringsplanleggeren gjenkjenner nå at en hvilken som helst kolonne i det høyre bordet på et LEFT JOIN kan være NULL, selv om den kolonnen har en IKKE NULL-begrensning. Unngå å prøve å optimalisere NULL-tester i de tilfellene. Fix for billett 6f2222d550f5b0ee7ed.
  • Kontroller at ORDER BY setter rader i stigende rekkefølge selv om DISTINCT-operatøren er implementert ved hjelp av en nedstigende indeks. Fix for billett c5ea805691bfc4204b1cb9e.
  • Lag datahall som kan oppstå under stress når du kjører med mange tråder i delt cache-modus der noen av tråder åpner og lukker tilkoblinger.
  • Løs obskure crash bugs funnet av amerikansk fuzzy lop. Billett a59ae93ee990a55.
  • Arbeid rundt en GCC-optimaliseringsfeil (for gcc 4.2.1 på MacOS 10.7) som forårsaket at R-Tree-utvidelsen skulle beregne feilresultater når de ble kompilert med -O3.
  • Andre endringer:
  • Deaktiver bruk av strchrnul () C-bibliotekets rutine med mindre det er spesifikt aktivert med alternativet -DHAVE_STRCHRNULL kompileringstid.
  • Forbedringer i effektiviteten og nøyaktigheten av sannsynligheten (), sannsynlig () og usannsynlig () SQL-hintfunksjonene.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 for sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

Hva er nytt i versjon 3.8.7.4:

  • Denne utgivelsesrettingene legger til i en mutex som kreves av endringene i 3.8.7.3-oppdateringen, men ble utelatt utelatt. Mutexen var ikke nødvendig av noen av de interne SQLite-tester, men Firefox krasjer uten det. Test tilfeller er lagt til for å sikre at mutex aldri blir savnet.

Hva er nytt i versjon 3.8.7.3:

  • Feilsøking: Kontroller at de cachelagede KeyInfo-objektene (en intern abstraksjon som ikke er synlig for programmet) ikke blir uaktuelle når de brukes i delt cache-modus, og ofte lukker og gjenåpner noen databasetilkoblinger mens andre databasetilkoblinger forlates i samme delte cache kontinuerlig. Billett e4a18565a36884b00edf.
  • Feilrettelse: Kjenne at en hvilken som helst kolonne i det høyre bordet av et VENSTRE JOIN kan være NULL selv om kolonnen har en IKKE NULL-begrensning. Ikke bruk optimaliseringer som antar kolonnen er aldri NULL. Billett 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 for sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

Hva er nytt i versjon 3.8.7.2:

  • Den primære årsaken til denne utgivelsen er å forbedre ROLLBACK-kommandoen, slik at den tillater kjøring av spørringer på samme databaseforbindelse for å fortsette å kjøre så lenge ROLLBACK ikke endrer skjemaet. I alle tidligere versjoner av SQLite vil en ROLLBACK føre til at ventende spørringer stopper umiddelbart og returnerer SQLITE_ABORT eller SQLITE_ABORT_ROLLBACK. Avventer spørringer avbrytes fortsatt hvis ROLLBACK endrer databaseskjemaet, men etter denne patch-utgivelsen kan spørringene fortsette å kjøre hvis skjemaet er umodifisert.
  • I tillegg til ROLLBACK-forbedringen inneholder denne oppdateringen også reparasjoner for tre uklare feil.

Hva er nytt i versjon 3.8.7.1:

  • Den primære årsaken til denne løsningen er å løse et problem med å oppdatere verdien av feltene på slutten av et bord som ble lagt til ved hjelp av ALTER TABLE ADD COLUMN. Dette problemet 1 oppstod først i 3.8.7-utgivelsen.
  • En annen mindre irritasjon i 3.8.7-utgivelsen var det faktum at Android-bygningen forsøkte å bruke strchrnul () -funksjonen fra standard C-biblioteket, men den funksjonen er ikke tilgjengelig på Android. Android-bygger måtte legge til -DHAVE_STRCHRNUL = 0 for å løse problemet. Denne oppdateringen løser det slik at Android bygger nå skal fungere uten endringer.
  • Operasjonen av PRAGMA journal_mode = TRUNCATE har blitt forbedret slik at den påkaller fsync () etter å ha avkortet journalfilen når PRAGMA synkron = FULL. Dette bidrar til å opprettholde transaksjonsens holdbarhet i tilfelle et strømbrudd som oppstår kort tid etter forpliktelsen.
  • Endelig ble et par langvarige og uklare problemer knyttet til løp UPDATE og DELETE on VIEW, løst.

Hva er nytt i versjon 3.8.7:

  • De fleste endringene fra forrige utgivelse har vært mikrooptimeringer designet for å hjelpe SQLite til å kjøre litt raskere. Hver enkelt optimalisering har en umåtelig liten ytelse innvirkning. Men forbedringene legger til. Målt på en veldefinert arbeidsbelastning (som SQLite-utviklerne bruker som proxy for en typisk arbeidsbelastning) ved hjelp av cachegrind på Linux og kompilert med gcc 4.8.1 og -Os på x64 linux, gjør dagens utgivelse mer enn 20% mer arbeid for samme antall CPU-sykluser i forhold til forrige utgave. Cachegrind er ikke en ekte CPU, og arbeidsbelastningen som brukes til måling er bare en proxy. Så ytelsen din kan variere. Vi regner med å se om lag halvparten av målt og rapportert forbedring i virkelige applikasjoner. 10% er mindre enn 20%, men det er fortsatt ganske bra, tror vi.
  • Denne utgaven inneholder et nytt sett med C-språkgrensesnitt som har usignert 64-bit i stedet for signerte 32-biters lengdeparametere. De nye APIene gir ingen nye muligheter. Men de gjør det lettere å skrive programmer som er mer motstandsdyktige overfor sikkerhetsproblemer.
  • Denne utgivelsen inneholder også en ny sorterer som kan bruke flere tråder for å hjelpe med store sorteringsoperasjoner. (Det er noen ganger nødvendig med sorteringsoperasjoner for å implementere ORDER BY og / eller GROUP BY-klausuler, og er nesten alltid nødvendig for CREATE INDEX.) Sortering av flere tråder er slått av som standard og må aktiveres ved hjelp av kommandoen PRAGMA-tråder SQL. Legg merke til at multi-threaded sorteringen gir raskere ytelse i sanntid for store sorter, men det bruker også flere CPU-sykluser og mer energi.

Hva er nytt i versjon 3.8.3.1:

  • SQLite versjon 3.8.3.1 løser en feil i stede i versjon 3.8.1, 3.8.2 og 3.8.3 som kan føre til at forespørsler om å utelukke gyldige rader utelates. Oppgradering fra disse versjonene anbefales.
  • Problemet oppstår bare hvis SQLite er kompilert med enten SQLITE_ENABLE_STAT3 eller SQLITE_ENABLE_STAT4 kompileringstidsalternativer. I så fall, hvis et spørsmål har en WHERE-setning som inneholder uttrykk som dette:
  • hvor (expr1 eller expr2 eller ... eller exprN) og kolonne er ikke null
  • Når alle expr1 gjennom exprN er egnet for bruk av indekser, kan SQLite ved feilplanlegging feilaktig konvertere kolonnen IS NOT NULL til "kolonne & gt; NULL". Men sistnevnte begrep er aldri sant, og spørringen vil derfor ikke returnere noen rader.

Hva er nytt i versjon 3.8.3:

  • Lagt til støtte for vanlige tabelluttrykk og WITH-klausulen.
  • Lagt til printf () SQL-funksjonen.
  • Lagt til SQLITE_DETERMINISTIC som en valgfri bit i det fjerde argumentet til sqlite3_create_function () og tilhørende grensesnitt, og gir applikasjoner muligheten til å opprette nye funksjoner som kan utelukkes fra indre looper når de har konstante argumenter.
  • Legg til SQLITE_READONLY_DBMOVED feilkode, returnert ved begynnelsen av en transaksjon, for å indikere at den underliggende databasefilen har blitt omdøpt eller flyttet fra under SQLite.
  • Tillat vilkårlig uttrykk, inkludert funksjonssamtaler og underforespørsler, i filnavnargumentet til ATTACH.
  • Tillat at en VALUES-klausul brukes hvor som helst en SELECT-setning er gyldig.
  • Gjorde PRNG brukt av sqlite3_randomness (N, P) når påkalt med N == 0. Automatisk reset etter en gaffel () på unix.
  • Forbedre virtuell tabell spellfix1 slik at den kan søke effektivt etter rowid.
  • Forbedringer i ytelsen.
  • Forbedringer av kommentarene i VDBE byte-kode displayet når du kjører EXPLAIN.
  • Legg til "% token_class" -direktivet til LEMON-parsergeneratoren og bruk det for å forenkle grammatikken.
  • Endre LEMON-kildekoden for å unngå å ringe C-biblioteksfunksjoner som OpenBSD anser farlig. (Eks: sprintf).
  • Feilrettelse: I CSV-importeringsfunksjonen på kommandolinjeskalaen, må du ikke avslutte et felt når et rømt dobbeltkvot forekommer på slutten av en CRLN-linje.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 for sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

Lignende programvare

MemSQL
MemSQL

20 Feb 15

Mroonga
Mroonga

17 Feb 15

Qercus
Qercus

14 Apr 15

Kommentarer til SQLite

Kommentarer ikke funnet
Legg til kommentar
Slå på bilder!