SQLite

Software skärmdump:
SQLite
Mjukvaruinformation:
Version: 3.24.0 Uppdaterad
Ladda upp dagen: 22 Jun 18
Utvecklare: D. Richard Hipp
Licens: Gratis
Popularitet: 21

Rating: 5.0/5 (Total Votes: 1)

SQLite är ett open source, multiplatform, gratis och litet C-bibliotek som implementerar en självständig, inbäddbar, transaktionsbaserad, serverlös och nollkonfigurations-SQL-databasmotor. Det är världens mest använda SQL-databasmotor.


Funktioner i ett ögonkast

Viktiga funktioner inkluderar stöd för isolerade, atomära, hållbara och konsekventa transaktioner, SQL92-implementering, databasfiler kan delas fritt mellan datorer, stöder databaser upp till 2 terabyte, stöd för gigabytestorlekar och strängar, små kodavtryck, som såväl som ett lättanvänt och mycket enkelt API (Application Programming Interface).

Dessutom kräver SQLite inte inledande konfiguration eller ytterligare administration, men tillåter utvecklare att lagra en komplett databas i en enda plattformsplattform, som är perfekt för att använda applikationsfilformat, har inga externa beroenden, i TCL (Tool Command Language) bindningar och omfattande dokumentation.

Bindningar för många andra programmeringsspråk finns tillgängliga separat. Källkoden är väl kommenterad och den levereras med en fristående CLI (Command-Line Interface) -klient som har konstruerats från offset som ska användas för administration av SQLite-databaser.


Vad kan jag använda det för?

SQLite-databasmotorn kan användas för alla ändamål, personliga eller kommersiella. Föreslagna användningsområden för SQLite inkluderar databas för gadgets, webbdatabas, stand-in för ett företag RDBMS (relationsdatabasstyrningssystem) samt applikationsfilformat.


Under huven och stödd operativsystem

SQLite-distributionen levereras med ett fristående kommandoradsåtkomstprogram (sqlite) som kan användas för att administrera en SQLite-databas och som fungerar som ett exempel på hur man använder SQLite-biblioteket. Det är skrivet helt i ANSI-C-programmeringsspråket.

Stödda stationära operativsystem inkluderar GNU / Linux, Mac OS X och Microsoft Windows. Stödda mobila operativsystem inkluderar Android och iOS. Det har testats framgångsrikt med både 32-bitars och 64-bitars hårdvaruplattformar, och det är enkelt portabelt till andra operativsystem.

Vad är nytt i den här utgåvan:

  • Höjdpunkter i den här utgåvan inkluderar stöd för PostgreSQL-stil UPSERT och förbättrad prestanda, särskilt för ORDER BY LIMIT-frågor.

Vad är nytt i version:

  • Dra nytta av atom-skrivfunktionerna i F2FS-filsystemet när det är tillgängligt, för kraftigt reducerad transaktionskostnad. Detta kräver för närvarande SQLITE_ENABLE_BATCH_ATOMIC_WRITE kompileringstid.
  • Tillåt ATTACH och DETACH-kommandon att arbeta inuti en transaktion.
  • Tillåt UTAN ROWID virtuella tabeller vara skrivbara om PRIMARY KEY innehåller exakt en kolumn.
  • "Fsync ()" som inträffar efter att huvudet är skrivet i en WAL-återställning använder nu synkroniseringsinställningarna för kontrollpunkter. Det betyder att det kommer att använda en "fullfsync" på mac om PRAGMA checkpoint_fullfsync sätter på.
  • Funktionen sqlite3_sourceid () försöker upptäcka om källkoden har ändrats från vad som kontrolleras i versionskontrollen och om det finns ändringar visas de sista fyra tecknen i versionshashen som "alt1" eller "alt2". Målet är att upptäcka oavsiktliga och / eller slarviga ändringar. En förfalskare kan undergräva denna funktion.
  • Förbättrad avkodning av kolumnnamn för CREATE TABLE AS-uttalanden med en aggregatfråga på höger sida.
  • Färre "stat ()" systemsamtal utfärdade av Unix VFS.
  • Förbättrad LIKE optimering så att den fungerar med en ESCAPE-klausul.
  • Förbättrad PRAGMA integritet_check och PRAGMA quick_check för att upptäcka obeklig radkorruption som de tidigare saknades. Uppdatera även båda pragmas så att de returnerar feltext snarare än SQLITE_CORRUPT när de stöter på korruption i poster.
  • Förfrågningsplaneringen föredrar nu att implementera FRÅN-klausulundersökningar med hjälp av samrutiner, snarare med hjälp av optimering av sökfrågor. Stöd för användningen av samrutiner för underfrågor kan inte längre vara inaktiverad.
  • Passera information om! =, IS, IS NOT, NOT NULL och NULL-begränsningar i xBestIndex-metoden för virtuella tabeller.
  • Förbättrade virtuella CSV-tabellen så att den accepterar den sista raden av inmatning om den sista nyckelfiguren saknas.
  • Ta bort den sällan använda "skrapa" minnesallokator. Byt ut det med SQLITE_CONFIG_SMALL_MALLOC konfigurationsinställningen som ger SQLite en ledtråd om att stora minnesallokeringar borde undvikas när det är möjligt.
  • Tillade virtuella virtuella tabellen till existerande virtuella tabellförlängning.
  • Tillagd virtuell tabell sqlite_dbpage för att ge direkt åtkomst till sidor i databasfilen. Källkoden är inbyggd i sammanslagningen och aktiveras med alternativet -DSQLITE_ENABLE_DBPAGE_VTAB kompileringstid.
  • Lägg till en ny typ av virtuella virtuella tabell fts5vocab - "instance" - som ger direkt åtkomst till ett FTS5 fulltextindex på lägsta möjliga nivå.
  • Ta bort ett samtal till rand_s () i Windows VFS eftersom det orsakade problem i Firefox på vissa äldre bärbara datorer.
  • Källkoden src / shell.c till kommandoradsskalet är inte längre under versionskontroll. Den filen är nu genererad som en del av byggprocessen.
  • Diverse mikrooptimeringar minskar CPU-användningen med cirka 2,1%.
  • Buggfixar:
  • Fix ett felaktigt assert () uttalande som upptäckts av OSSFuzz. Biljett cb91bf4290c211d
  • Fixa en obskyrlig läckage i sqlite3_result_pointer (). Biljett 7486aa54b968e9b
  • Undvik ett eventuellt använd-efter-fritt fel genom att skjuta upp schemanåterställningar tills efterfrågningsplaneringen är klar. Biljett be436a7f4587ce5
  • Använd endast index-på-uttryck för att optimera ORDER BY eller GROUP BY om COLLATE är korrekt. Biljett e20dd54ab0e4383
  • Fixa ett påståendefel som kom upp när uttrycket i ett index-på-uttryck verkligen är en konstant. Biljett aa98619ad08ddca
  • Fix ett påståendefel som kan uppstå efter PRAGMA reverse_unordered_selects. Biljett cb91bf4290c211d
  • Fixa en segfault som kan uppstå för frågor som använder tabellvärderade funktioner i en IN- eller EXISTS-undersökning. Biljett b899b6042f97f5
  • Fix ett potentiellt heltalsproblem när du sammanställer ett särskilt grymt gemensamt tabelluttryck. Detta var ett annat problem som upptäckts av OSSFuzz. Checka in 6ee8cb6ae5.
  • Fixa en potentiell out-of-bound-läsning när du frågar en korrupt databasfil, ett problem som upptäckts av Natalie Silvanovich av Google Project Zero. Incheckning 04925dee41a21f.

Vad är nytt i version 3.20.1:

  • Utgåvan av version 3.20.1-patch ändrar två rader kod i sqlite3_result_pointer () -gränssnittet för att fixa en sällsynt minneläckage.

Vad är nytt i version 3.9.2:

  • SQLite version 3.9.2 är en patch release som fixar två obskurliga fel.

Vad är nytt i version 3.8.9:

  • Nya funktioner i den här utgåvan inkluderar kommandot PRAGMA index_xinfo, sqlite3_status64 () -gränssnittet och kommandot ".dbinfo" på kommandoradsskalet.

Vad är nytt i version 3.8.8.2:

  • Utgåvan 3.8.8.2 patch fixar ett enda mindre problem: Det säkerställer att sqlite3_wal_checkpoint (TRUNCATE) -operationen alltid kommer att stympa framskrivningsloggen även om loggen redan hade återställts och inte innehöll nytt innehåll. Det är oklart om det här är en buggfix eller en ny funktion.
  • Någonting som detta skulle normalt gå in i nästa regelbundna utgåva, men en framstående SQLite-användare behövde förändringen bråttom, så vi lyckades skynda ut det via den här patchen.
  • Det finns ingen anledning att uppgradera om du inte behöver det förbättrade beteendet för sqlite3_wal_checkpoint (TRUNCATE).

Vad är nytt i version 3.8.8.1:

  • Fixa ett fel i sorteringslogiken, som presenteras sedan version 3.8.4, som kan få utmatning att visas i fel ordning på frågor som innehåller en ORDER BY-klausul, en LIMIT-klausul och som har ungefär 60 eller flera kolumner i resultatuppsättningen. Biljett f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 för sqlite3.c: 33987fb50dcc09f1429a653d6b47672f5a96f19e

Vad är nytt i version 3.8.8:

  • Nya funktioner:
  • Tillagde kommandot PRAGMA data_version som kan användas för att bestämma om en databasfil har ändrats med en annan process.
  • Tillagde alternativet SQLITE_CHECKPOINT_TRUNCATE till sqlite3_wal_checkpoint_v2 () gränssnittet, med motsvarande förbättringar till PRAGMA wal_checkpoint.
  • Tillagd sqlite3_stmt_scanstatus () gränssnittet, tillgängligt endast när det sammanställdes med SQLITE_ENABLE_STMT_SCANSTATUS.
  • Den sqlite3_table_column_metadata () är förstärkt för att fungera korrekt på UTAN ROWID-tabeller och för att kontrollera om en tabell finns om kolumnnamnsparametern är NULL. Gränssnittet ingår nu också i byggnaden som standard utan att kräva SQLITE_ENABLE_COLUMN_METADATA kompileringstid.
  • Tillagde SQLITE_ENABLE_API_ARMOR kompileringstid alternativet.
  • Tillagde alternativet SQLITE_REVERSE_UNORDERED_SELECTS kompileringstid.
  • Tillagd SQLITE_SORTER_PMASZ kompileringstid alternativet och SQLITE_CONFIG_PMASZ starttid alternativ.
  • Tillagde SQLITE_CONFIG_PCACHE_HDRSZ till sqlite3_config () vilket gör det lättare för applikationer att bestämma lämplig mängd minne för användning med SQLITE_CONFIG_PAGECACHE.
  • Antalet rader i en VALUES-klausul begränsas inte längre av SQLITE_LIMIT_COMPOUND_SELECT.
  • Tillagde eval.c-laddningsförlängningen som implementerar en eval () SQL-funktion som kommer att rekursivt utvärdera SQL.
  • Prestationsförbättringar:
  • Minska antalet memcpy () -operationer som är inblandade i att balansera ett b-träd, för 3,2% ökning av total prestanda.
  • Förbättringar av kostnadsberäkningar för optimering av hoppa-skanning.
  • Den automatiska indexeringsoptimeringen kan nu generera ett partiellt index om det är lämpligt.
  • Buggfixar:
  • Säkerställ hållbarhet efter en strömförlust med "PRAGMA journal_mode = TRUNCATE" genom att ringa fsync () direkt efter avkortning av journalfilen.
  • Förfrågningsplaneringen erkänner nu att en kolumn i den högra tabellen på en LEFT JOIN kan vara NULL, även om den kolumnen har en NULL NULL-begränsning. Undvik att försöka optimera ut NULL-tester i dessa fall. Fix för biljett 6f2222d550f5b0ee7ed.
  • Se till att ORDER BY sätter rader i stigande ordning även om DISTINCT-operatören implementeras med hjälp av ett fallande index. Fix för biljett c5ea805691bfc4204b1cb9e.
  • Lös dataöverföringar som kan uppstå under stress när de körs med många trådar i delat cachemodus där några av trådarna öppnar och stänger anslutningar.
  • Fix obskura kraschbuggar som hittades av amerikanska fuzzy lop. Biljett a59ae93ee990a55.
  • Arbeta runt en GCC-optimeringsfel (för gcc 4.2.1 på MacOS 10.7) som gjorde att R-Tree-förlängningen skulle beräkna felaktiga resultat när de sammanställdes med -O3.
  • Andra ändringar:
  • Inaktivera användningen av strchrnul () C-bibliotekets rutin om det inte är specifikt aktiverat med alternativet -DHAVE_STRCHRNULL kompileringstid.
  • Förbättringar av effektiviteten och noggrannheten av sannolikheten (), sannolikt () och osannolikt () SQL-hintfunktioner.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 för sqlite3.c: 91aea4cc722371d58aae3d22e94d2a4165276905

Vad är nytt i version 3.8.7.4:

  • Denna version fixar läggs till i en mutex som krävs av ändringarna av 3.8.7.3 patch men som uteslutes av misstag. Mutexen krävdes inte av någon av de interna SQLite-testerna, men Firefox kraschar utan det. Testfall har lagts till för att säkerställa att mutex aldrig missas igen.

Vad är nytt i version 3.8.7.3:

  • Buggfix: Se till att de cachelagrade KeyInfo-objekten (en intern abstraktion som inte är synlig för programmet) inte blir gammal när de används i delat cachemodus och ofta stänger och återupptar vissa databasanslutningar medan andra databasanslutningar lämnas i samma delade cache kontinuerligt. Biljett e4a18565a36884b00edf.
  • Buggfix: Känn igen att en kolumn i den högra tabellen på en LEFT JOIN kan vara NULL även om kolumnen har en NULL NULL-begränsning. Applicera inte optimeringar som antar kolumnen är aldrig NULL. Biljett 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 för sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

Vad är nytt i version 3.8.7.2:

  • Den främsta orsaken till den här utgåvan är att förbättra kommandot ROLLBACK så att det går att springa frågor på samma databasförbindelse för att fortsätta springa så länge som ROLLBACK inte ändrar schemat. I alla tidigare versioner av SQLite skulle en ROLLBACK orsaka pågående frågor att sluta omedelbart och returnera SQLITE_ABORT eller SQLITE_ABORT_ROLLBACK. Avvaktande frågor avbryts fortfarande om ROLLBACK ändrar databasschemat, men efter denna patchfrisättning får frågorna fortsätta att köra om schemanet är omodifierat.
  • Förutom ROLLBACK-förbättringen innehåller även denna korrigeringsfrisättning fixer för tre obskurliga fel.

Vad är nytt i version 3.8.7.1:

  • Den primära orsaken till det här buggfix-utgåvan är att lösa ett problem med att uppdatera värdet på fält i slutet av ett bord som lagts till med ALTER TABLE ADD COLUMN. Detta problem 1 uppträdde först i 3.8.7-utgåvan.
  • En annan mindre irritation i 3.8.7-utgåvan var det faktum att Android-byggverket försökte använda strchrnul () -funktionen från standard C-biblioteket, men den funktionen är inte tillgänglig på Android. Android-byggnader måste lägga till -DHAVE_STRCHRNUL = 0 för att lösa problemet. Denna korrigeringsfil fixar det så att Android bygger ska nu fungera utan några ändringar.
  • Funktionen för PRAGMA journal_mode = TRUNCATE har förbättrats så att den påkallar fsync () efter att ha avkortat journalfilen när PRAGMA synkron = FULL. Detta bidrar till att bevara transaktionens hållbarhet i händelse av en strömförlust som inträffar strax efter fördrag.
  • Slutligen fixades ett par långvariga och dunkla problem i samband med kör UPDATE och DELETE on VIEW.

Vad är nytt i version 3.8.7:

  • De flesta av ändringarna från den tidigare utgåvan har varit mikrooptimeringar avsedda att hjälpa SQLite att springa lite snabbare. Varje enskild optimering har en oöverträffad liten prestandaffekt. Men förbättringarna lägger till. Mätt på en väldefinierad arbetsbörda (som SQLite-utvecklarna använder som en proxy för en typisk arbetsbelastning) med cachegrind på Linux och kompilerad med gcc 4.8.1 och -Os på x64 linux, gör den aktuella versionen över 20% mer arbete för samma antal CPU-cykler jämfört med föregående utgåva. Cachegrind är inte en riktig CPU, och arbetsbelastningen som används för mätning är bara en proxy. Så din prestation kan variera. Vi förväntar oss att se ungefär hälften av uppmätta och rapporterade förbättringar i verkliga applikationer. 10% är mindre än 20% men det är fortfarande ganska bra, tror vi.
  • Den här utgåvan innehåller en ny uppsättning C-språkgränssnitt som har unsigned 64-bit istället för signerade 32-bitars längdparametrar. De nya API: erna ger inga nya funktioner. Men de gör det lättare att skriva program som är mer motståndskraftiga mot sårbarhet i heltal.
  • Denna release innehåller också en ny sorterare som kan använda flera trådar för att hjälpa till med stora sorteringsoperationer. (Sortera operationer krävs ibland för att implementera ORDER BY och / eller GROUP BY-klausuler och krävs nästan alltid för CREATE INDEX.) Sortering av flera trådar är avstängd som standard och måste aktiveras med kommandot PRAGMA-trådar SQL. Observera att multi-threaded sorteraren ger snabbare realtid för stora sorter, men det använder också fler CPU-cykler och mer energi.

Vad är nytt i version 3.8.3.1:

  • SQLite version 3.8.3.1 åtgärdar en buggpresentation i versioner 3.8.1, 3.8.2 och 3.8.3 som kan orsaka frågor om att utelämna giltiga rader. Uppgradering från dessa versioner rekommenderas.
  • Problemet uppstår endast om SQLite kompileras med antingen SQLITE_ENABLE_STAT3 eller SQLITE_ENABLE_STAT4 kompileringstidsalternativ. I det fallet, om en fråga har en WHERE-klausul som innehåller uttryck som denna:
  • VAR (expr1 ELLER EXPR2 ELLER ... ELLER EXPRN) OCH KOLN ÄR INTE NULL
  • Om alla expr1 via exprN är lämpliga för index, kan SQLite felaktigt konvertera kolumnen INTE NULL i termen "kolumn & NULL". Men den senare termen är aldrig sant, och så kommer frågan inte att returnera några rader.

Vad är nytt i version 3.8.3:

  • Tillagt stöd för vanliga tabelluttryck och WITH-klausulen.
  • Tillagde funktionen printf () SQL.
  • Tillagde SQLITE_DETERMINISTIC som en valfri bit i det 4: e argumentet till sqlite3_create_function () och relaterade gränssnitt, vilket ger applikationer möjligheten att skapa nya funktioner som kan integreras ur inre loopar när de har konstanta argument.
  • Lägg till SQLITE_READONLY_DBMOVED felkod, returnerad i början av en transaktion, för att indikera att den underliggande databasfilen har bytt namn eller flyttats från under SQLite.
  • Tillåt godtyckliga uttryck, inklusive funktionssamtal och underfrågor, i filnamnargumentet till ATTACH.
  • Tillåt att en VALUES-klausul används överallt där ett SELECT-uttalande är giltigt.
  • Återställde den PRNG som användes av sqlite3_randomness (N, P) när den anropades med N == 0. Återställs automatiskt efter en gaffel () på unix.
  • Förbättra virtuell tabell spellfix1 så att den kan söka effektivt av rowid.
  • Förbättringar av prestanda.
  • Förbättringar av kommentarerna i VDBE-byte-koddisplayen när du kör EXPLAIN.
  • Lägg till "% token_class" -direktivet till LEMON parsergenerator och använd det för att förenkla grammatiken.
  • Ändra LEMON-källkoden för att undvika att ringa C-biblioteksfunktioner som OpenBSD anser vara farliga. (Ex: sprintf).
  • Buggfix: I CSV-importfunktionen för kommandoradsskärmen slutar du inte ett fält när ett flyktigt dubbel citat inträffar i slutet av en CRLN-rad.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 för sqlite3.c: 98a07da78f71b0275e8d9c510486877adc31dbee

Liknande mjukvara

deltasql
deltasql

19 Feb 15

Free-Vote
Free-Vote

3 Jun 15

MemSQL
MemSQL

20 Feb 15

Jaxer
Jaxer

3 Jun 15

Kommentarer till SQLite

Kommentarer hittades inte
Kommentar
Slå på bilder!