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

MariaDB
MariaDB

20 Jan 18

Drizzle
Drizzle

20 Feb 15

Apache Cassandra
Apache Cassandra

19 Feb 15

Cego
Cego

17 Feb 15

Kommentarer til SQLite

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