SQLite

Szoftver screenshot:
SQLite
Szoftver adatai:
Változat: 3.24.0 Frissítve
Feltöltés dátuma: 22 Jun 18
Fejlesztő: D. Richard Hipp
Engedély: Ingyenes
Népszerűség: 21

Rating: 5.0/5 (Total Votes: 1)

SQLite egy nyílt forráskódú, többplatformos, ingyenes és kis C könyvtár, amely önálló, beágyazható, tranzakciós, szerver nélküli és nulla konfigurációs SQL adatbázismotort hajt végre. Ez a világ leggyakrabban használt SQL adatbázismotora.


Jellemzők áttekintése

A legfontosabb funkciók közé tartoznak az elszigetelt, atomos, tartós és konzisztens tranzakciók támogatása, az SQL92 végrehajtása, az adatbázis fájlok szabadon oszthatók meg a számítógépek között, támogatják a legfeljebb 2 terabájtos adatbázisokat, támogatják a gigabájt méretű foltokat és karakterláncokat, valamint egy egyszerűen használható és nagyon egyszerű API (Application Programming Interface).

Ezenkívül az SQLite nem igényel kezdeti konfigurációt vagy további adminisztrációt, lehetővé teszi a fejlesztők számára, hogy egyetlen, több platformra kiterjedő lemezfájlban tárolják a teljes adatbázist, amely tökéletes az alkalmazásfájlformátumok használatához, nincs külső függősége, a TCL (Eszközparancsnyelv) kötések és az átfogó dokumentáció.

A számos más programozási nyelvhez való kötések külön kaphatók. A forráskód jól megfogalmazott, és egy önálló CLI (Command-Line Interface) klienssel érkezik, amelyet az offsetből terveztek az SQLite adatbázisok felügyeletéhez.


Mit használhatok?

Az SQLite adatbázis motor bármilyen célra, személyes vagy kereskedelmi célra használható. Az SQLite javasolt felhasználási területei: modulok, webhelyadatbázisok, vállalati RDBMS (Relational Database Management System) és alkalmazásfájl-formátum.
A motorháztető és a támogatott operációs rendszerek alatt

Az SQLite disztribúció egy önálló parancssori hozzáférési programmal (sqlite) jön létre, amely SQLite adatbázis kezelésére használható, és amely példa az SQLite könyvtár használatára. Teljes egészében az ANSI-C programozási nyelvben készült.

A támogatott asztali operációs rendszerek közé tartozik a GNU / Linux, a Mac OS X és a Microsoft Windows. A támogatott mobil operációs rendszerek Android és iOS rendszereket tartalmaznak. Mind a 32 bites, mind a 64 bites hardveres platformokon sikeresen tesztelték, és ez könnyen hordozható más operációs rendszerekre.

Újdonság a következő verzióban:

  • A kiadvány legfontosabb elemei a PostgreSQL-stílusú UPSERT támogatása és a jobb teljesítmény, különösen a ORDER BY LIMIT lekérdezésekhez.

Újdonság a verzióban:

  • Használja ki az atomfunkciós képességeket az F2FS fájlrendszerben, ha rendelkezésre áll, jelentősen csökkentve a tranzakciós költségeket. Ez jelenleg SQLITE_ENABLE_BATCH_ATOMIC_WRITE fordítási idő opciót igényel.
  • Engedélyezheti, hogy az ATTACH és a DETACH parancsok tranzakcióban működjenek.
  • A ROWID nélküli virtuális táblák használata csak akkor írható, ha a PRIMARY KEY pontosan egy oszlopot tartalmaz.
  • A & quot; fsync () & quot; amely a fejléc WAL-alapú visszaállításakor történik, most használja az ellenőrzőpontok szinkronizálási beállításait. Ez azt jelenti, hogy a "fullfsync" ha a PRAGMA checkpoint_fullfsync be van kapcsolva.
  • Az sqlite3_sourceid () függvény megpróbálja észlelni, hogy a forráskódot módosította-e a verziókezeléssel ellenőrizve, és ha vannak módosítások, a verzió hash utolsó négy karaktere "& lt; alt1 & quot; vagy "alt2". A cél a véletlen és / vagy gondatlan szerkesztések felderítése. A hamisító megkerülheti ezt a funkciót.
  • A CREATE TABLE AS állítások oszlopnevének jobb megjelenítése a jobb oldali összesített lekérdezéssel.
  • Kevesebb "stat ()" a Unix VFS által kiadott rendszerhívások.
  • Javította a LIKE optimalizálást, hogy működjön egy ESCAPE záradékkal.
  • A továbbfejlesztett PRAGMA integrity_check és a PRAGMA quick_check segítségével észlelheti a korábban hiányzó homályos sor hibákat. Szintén frissítsen mindkét pragmát, hogy hibaüzenetet kapjon az SQLITE_CORRUPT helyett, amikor a rekordok hibát tapasztalnak.
  • A lekérdező tervező most inkább a FROM-clause alkarészletek végrehajtását preferálja a társrutinok használatával, inkább a lekérdezési leképezés optimalizálásával. A másodlagos lekérdezések társrutinok használatának támogatása többé nem tiltható le.
  • Adjon információt a! =, IS, NOT NOT NOT NULL és az IS NULL korlátokról a virtuális táblák xBestIndex módszere szerint.
  • A CSV virtuális tábla megerősítése, hogy elfogadja az utolsó beviteli sort, ha a végső új sor hiányzik.
  • Távolítsa el a ritkán használt "karcolás" memóriafoglaló. Cserélje ki azt az SQLITE_CONFIG_SMALL_MALLOC konfigurációs beállítással, amely az SQLite-nek azt a figyelmeztetést adja, hogy a nagy memóriaelosztást el kell kerülni, ha lehetséges.
  • Hozzáadta a swarm virtuális táblát a meglévő virtuális asztal-bővítményhez.
  • Hozzáadta a sqlite_dbpage virtuális táblát, amely közvetlen hozzáférést biztosít az adatbázis fájl oldalaihoz. A forráskód beépül az egyesítésbe, és a -DSQLITE_ENABLE_DBPAGE_VTAB fordítási idő opcióval aktiválódik.
  • Új típusú fts5vocab virtuális tábla hozzáadása - "példány" - amely a lehető legalacsonyabb szinten biztosít közvetlen hozzáférést egy FTS5 teljes szöveges indexhez.
  • Vandáljon be egy hívást rand_s () -ra a Windows VFS-ben, mivel a Firefox néhány nagyobb laptopon okoz problémát.
  • A parancssori shell parancsra a src / shell.c forráskód többé nem áll verziókezelés alatt. Ez a fájl létrehozása a build folyamat részeként történik.
  • Az egyéb mikrooptimizációk körülbelül 2,1% -kal csökkentik a CPU használatát.
  • Hibajavítások:
  • Javítsa ki az OSSFuzz által felfedezett hibás assert () állítást. Ticket cb91bf4290c211d
  • A sqlite3_result_pointer () pontban egy homályos memória szivárgást rögzít. Jegy 7486aa54b968e9b
  • Kerülje el a lehetséges felhasználás utáni hibát a séma-alaphelyzetbe állítások elhalasztásával mindaddig, amíg a lekérdezési tervező befejeződött. Ticket be436a7f4587ce5
  • A COLLATE helyes használatához csak indexes-on-expressions használatával optimalizálhatja az ORDER BY vagy a GROUP BY csoportot. Ticket e20dd54ab0e4383
  • Állítson be egy olyan állításhibát, amely akkor jön fel, amikor a kifejezés az index-on-kifejezésekben tényleg állandó. Jegy aa98619ad08ddca
  • Állítsa be a PRAGMA reverse_unordered_selects után előforduló állítólagos hibát. Ticket cb91bf4290c211d
  • Az olyan szegmensek javítása, amelyek az IN vagy az EXISTS alfelhasználási kérésben szereplő táblázatos funkciókat használó lekérdezések esetén fordulhatnak elő. Jegyet b899b6042f97f5
  • Határozza meg a potenciális egész túlcsordulási problémát, ha egy adott szörnyű közös táblázat-kifejezést állít össze. Ez egy másik probléma, amelyet az OSSFuzz fedezett fel. Bejelentkezés 6ee8cb6ae5.
  • Fix egy potenciális out-of-bound olvasni, amikor lekérdez egy korrupt adatbázis fájlt, a probléma által észlelt Natalie Silvanovich a Google Project Zero. Check-in 04925dee41a21f.

Az újdonság a 3.20.1 verzióban:

  • A 3.20.1-es verziójú patch-kiadás a sqlite3_result_pointer () felületen két sornyi kódot változtat a ritka memóriaszivárgás megszüntetése érdekében.

Az újdonság a 3.9.2-es verzióban:

  • Az SQLite 3.9.2-es verziója egy patch-kiadás, amely két homályos hibát rögzít.

Az újdonság a 3.8.9-es verzióban:

  • A kiadvány új funkciói közé tartozik a PRAGMA index_xinfo parancs, az sqlite3_status64 () felület és a parancssori shell ".dbinfo" parancs.

Az újdonság a 3.8.8.2-es verzióban:

  • A 3.8.8.2-es patch-kiadás egyetlen kisebb problémát kijavít: Biztosítja, hogy a sqlite3_wal_checkpoint (TRUNCATE) művelet mindig lecsökkenti az elolvasási naplót, még akkor is, ha a napló már vissza lett állítva, és nem tartalmaz új tartalmat. Nem világos, hogy ez egy hibajavítás vagy egy új funkció.
  • Valami ilyesmi rendszerint bejut a következő rendszeresen tervezett kiadáshoz, de egy kiemelkedő SQLite felhasználónak szüksége volt a változtatásra, így sietni tudtuk ezt a javítást.
  • Nincs ok arra, hogy frissítsd, hacsak nem szükséges a sqlite3_wal_checkpoint (TRUNCATE) továbbfejlesztett viselkedése.

Az újdonság a 3.8.8.1-es verzióban:

  • A hiba megszüntetése a 3.8.4-es verzió óta megjelenő rendezési logikában, amely a rendeltetési helyek rossz sorrendben megjelenését eredményezheti olyan lekérdezések esetén, amelyek ORDER BY-záradékot tartalmaznak, egy LIMIT-záradékot, és körülbelül 60 vagy több oszlopot tartalmaznak az eredményhalmazt. Jegy f97c4637102a3ae72b79.
  • SQLITE_SOURCE_ID: "2015-01-20 16:51:25 f73337e3e289915a76ca96e7a05a1a8d4e890d55"
  • SHA1 a sqlite3.c fájlhoz: 33987fb50dcc09f1429a653d6b47672f5a96f19e

Az újdonság a 3.8.8-as verzióban:

  • Új funkciók:
  • Hozzáadta a PRAGMA data_version parancsot, amely meghatározhatja, hogy egy adatbázist egy másik folyamat módosította-e.
  • Hozzáadta az SQLITE_CHECKPOINT_TRUNCATE opciót a sqlite3_wal_checkpoint_v2 () felülethez, a PRAGMA wal_checkpoint megfelelő javításával.
  • Hozzáadta a sqlite3_stmt_scanstatus () felületet, amely csak SQLITE_ENABLE_STMT_SCANSTATUS fordítással áll rendelkezésre.
  • Az sqlite3_table_column_metadata () jobban működik a NINCS ROWID táblákon, és ellenőrzi, hogy létezik-e egy táblázat, ha az oszlopnév paraméter NULL. A felületet alapértelmezés szerint a beépítés is tartalmazza, anélkül, hogy az SQLITE_ENABLE_COLUMN_METADATA fordítási idő beállításra lenne szükség.
  • Hozzáadta az SQLITE_ENABLE_API_ARMOR fordítási idő opciót.
  • Hozzáadta az SQLITE_REVERSE_UNORDERED_SELECTS fordítási idő opciót.
  • Hozzáadta az SQLITE_SORTER_PMASZ fordítási idő opciót és az SQLITE_CONFIG_PMASZ kezdési időpontot.
  • Hozzáadta az sqlite3_config () SQLITE_CONFIG_PCACHE_HDRSZ opciót, amely megkönnyíti az alkalmazások számára, hogy meghatározzák a megfelelő mennyiségű memóriát az SQLITE_CONFIG_PAGECACHE használatához.
  • Az értékek száma a VALUES záradékban már nem korlátozódik az SQLITE_LIMIT_COMPOUND_SELECT.
  • Hozzáadta az eval.c betölthető kiterjesztést, amely az SQL által rekurzívan értékelt eval () SQL függvényt hajtja végre.
  • Teljesítménynövelés:
  • Csökkentse a b-tree kiegyensúlyozásához szükséges memcpy () műveletek számát, 3,2% -os általános teljesítménynövekedést.
  • A költségbecslések javítása a kihagyásos szkennelés optimalizálásához
  • Az automatikus indexelés optimalizálás most képes egy részleges index létrehozására, ha ez megfelelő.
  • Hibajavítások:
  • A "PRAGMA journal_mode = TRUNCATE" teljesítményveszteséget követő tartósság biztosítása a naplófájl lecsatolása után az fsync () meghívásával.
  • A lekérdező tervező most felismeri, hogy a LEFT JOIN jobb oldali táblázatban lévő bármely oszlop NULL lehet, még akkor is, ha az adott oszlop NOT NULL korláttal rendelkezik. Ne próbálja meg optimalizálni a NULL teszteket ezeken az eseteken. Fix a 6f2222d550f5b0ee7ed jegyhez.
  • Győződjön meg róla, hogy az ORDER BY sorokat növekvő sorrendbe helyezi, még akkor is, ha a DISTINCT operátor lefelé mutató index alkalmazásával kerül végrehajtásra. Fix a c5ea805691abfc4204b1cb9e jegyre.
  • A feszültség alatt felmerülő adatrészletek javítása, ha sok szálat futtatunk megosztott gyorsítótár módban, ahol a szálak egy része a csatlakozásokat nyitja és zárja.
  • Javítsa az amerikai fuzzy lopás által feltárt titkos összeomlási hibákat. Jegyet a59ae93ee990a55.
  • GCC optimalizáló hiba (gcc 4.2.1 MacOS 10.7-es verzióban) működése, amely az R-Tree bővítményt hibás eredményeket számította ki, amikor az -O3-val fordított.
  • Egyéb módosítások:
  • Letiltja a strchrnul () C-könyvtár rutin használatát, hacsak nincs kifejezetten engedélyezve a -DHAVE_STRCHRNULL fordítási idő opció használatával.
  • A valószínűség (), valószínű () és a valószínűsíthető () SQL hint függvények hatékonyságának és pontosságának javítása.
  • SQLITE_SOURCE_ID: "2015-01-16 12:08:06 7d68a42face3ab14ed88407d4331872f5b243fdf"
  • SHA1 sqlite3.c fájlhoz: 91aea4cc722371d58aae3d22e94d2a4165276905

Az újdonság a 3.8.7.4-es verzióban:

  • Ez a kiadási javítás egy olyan mutexhez ad hozzá, amelyet a 3.8.7.3 javítás módosításai követnek, de véletlenül elhagyta. A mutex nem volt szükséges a belső SQLite teszteknél, de a Firefox összeomlik anélkül. Tesztesetek kerültek hozzá annak biztosításához, hogy a mutex soha többé ne maradjon le.

Az újdonság a 3.8.7.3-as verzióban:

  • Hibajavítás: Győződjön meg róla, hogy a gyorsítótárba helyezett KeyInfo objektumok (az alkalmazásban nem látható belső absztrakció) nem járnak el, amikor megosztott gyorsítótáras üzemmódban működnek, és gyakran lezárják és újra megnyitják az egyes adatbázis-kapcsolatokat, miközben más adatbázis-kapcsolatokat hagynak ugyanazon megosztott gyorsítótárban folyamatosan. Ticket e4a18565a36884b00edf.
  • Hibajavítás: Felismeri, hogy a LEFT JOIN jobb oldali táblájában található bármely oszlop NULL lehet, még akkor is, ha az oszlop NOT NULL korláttal rendelkezik. Ne alkalmazzon olyan optimalizálást, amely feltételezi, hogy az oszlop soha nem szerepel NULL-ban. Jegy 6f2222d550f5b0ee7ed.
  • SQLITE_SOURCE_ID: "2014-12-05 22:29:24 647e77e853e81a5effeb4c33477910400a67ba86"
  • SHA1 sqlite3.c: 3ad2f5ba3a4a3e3e51a1dac9fda9224b359f0261

Az újdonság a 3.8.7.2-es verzióban:

  • Ennek a kiadásnak az elsődleges oka a ROLLBACK parancs javítása annak érdekében, hogy lehetővé tegye a futó lekérdezések ugyanazon az adatbázis-kapcsolaton való folytatását, amíg a ROLLBACK nem módosítja a sémát. Az SQLite összes korábbi verziójában a ROLLBACK a függőben lévő lekérdezések azonnali leállását eredményezheti, és visszaadhatja az SQLITE_ABORT vagy az SQLITE_ABORT_ROLLBACK fájlt. A függőben lévő lekérdezések még mindig megszakadnak, ha a ROLLBACK megváltoztatja az adatbázis sémáját, de a javítások közül a lekérdezések folytatódhatnak, ha a séma nem módosul.
  • A ROLLBACK javítás mellett ez a javítás is tartalmaz három hibás hiba javítását.

Újdonság a 3.8.7.1-es verzióban:

  • A hibajavító kiadás elsődleges oka az ALTER TABLE ADD COLUMN ALTER TABLE ADD COLUMN használatával hozzáadott táblák végén lévő mezők értékének frissítésével kapcsolatos probléma megoldása. Ez a probléma 1 először a 3.8.7-es verzióban jelent meg.
  • A 3.8.7-es verzióban egy másik kisebb bosszúság volt az a tény, hogy az Android build próbálta használni a strchrnul () függvényt a standard C könyvtárból, de ez a funkció nem érhető el az Android rendszeren. Az Android fejlesztőknek hozzá kellett adniuk a -DHAVE_STRCHRNUL = 0 -ot a probléma megoldásához. Ez a javítás úgy oldja meg, hogy az Android fejlesztéseknek minden változtatás nélkül működniük kell.
  • A PRAGMA journal_mode = TRUNCATE működését továbbfejlesztettük, így az fsync () meghívása után a naplófájl vágása után PRAGMA synchronous = FULL. Ez segít a tranzakció tartósságának megőrzésében a bekövetkezést követően bekövetkező teljesítményveszteség esetén.
  • Végül néhány, a régebbi és elhomályosodott probléma áll fenn a UPDATE és a DELETE megjelenítésével a VIEW-eken.

Mi új a 3.8.7-es verzióban:

  • Az előző verzióban bekövetkezett változások többsége olyan mikrooptimalizálás volt, amelynek célja az SQLite gyorsabb futtatása. Minden egyes optimalizálás mérhetetlenül kisméretű teljesítményhatással jár. De a fejlesztések összeadódnak. A jól definiált munkaterhelés (amelyet az SQLite fejlesztők proxyként használnak egy tipikus alkalmazási munkaterhelésért) a cachegrind segítségével Linuxon, és a gcc 4.8.1 és az x64 linuxos fájlokkal állítják össze, az aktuális kiadás több mint 20% -kal több munkát végez ugyanannyi CPU ciklus, mint az előző kiadás. A Cachegrind nem valós CPU, és a méréshez használt munkaterhelés csak proxy. Tehát teljesítménye változhat. Arra számítunk, hogy a valós alkalmazásokban mért és jelentett javulás mintegy felét látjuk. 10% kevesebb, mint 20%, de még mindig elég jó, gondoljuk.
  • Ez a kiadás olyan új C-nyelvű interfészeket tartalmaz, amelyek aláírás nélküli 64 bites, 32 bites hosszúságú paraméterek helyett. Az új API-k nem nyújtanak új lehetőségeket. De megkönnyítik az olyan alkalmazások írását, amelyek jobban ellenállnak az egész túlcsordulás sebezhetőségének.
  • Ez a kiadás egy új sortert is tartalmaz, amely képes több szálat használni a nagy rendezési műveletekhez. (A rendezési műveletek néha szükségesek az ORDER BY és / vagy a GROUP BY klauzulák végrehajtásához, és szinte mindig szükségesek a CREATE INDEX használatához.) A többszálas rendező alapértelmezés szerint ki van kapcsolva, és engedélyezni kell a PRAGMA szálak SQL parancs használatával. Felhívjuk a figyelmet arra, hogy a többszálas sorter gyorsabb valós idejű teljesítményt nyújt nagy fajta, de több CPU-ciklust és több energiát is használ.

Az újdonság a 3.8.3.1-es verzióban:

  • Az SQLite 3.8.3.1-es verziója hibát javít a 3.8.1, 3.8.2 és 3.8.3 verziókban, amelyek az érvénytelen sorok elhagyását eredményezhetik. Javasolt a fenti verziókból történő frissítés.
  • A probléma csak akkor jelenik meg, ha az SQLite az SQLITE_ENABLE_STAT3 vagy az SQLITE_ENABLE_STAT4 fordítási idő beállítással készült. Ebben az esetben, ha egy lekérdezésnek olyan WHERE klauzulája van, amely ilyen kifejezéseket tartalmaz:
  • WHERE (expr1 VAGY expr2 VAGY VAGY EXPRESS) ÉS az oszlop NOT NULL
  • Ahol az expr1-es exprN-en keresztül minden index alkalmas, akkor a lekérdezéstervezés során az SQLite tévesen átalakíthatja az "IS NOT NULL" kifejezést "oszlopban> NULL" -ra. Az utóbbi kifejezés azonban soha nem igaz, ezért a lekérdezés nem ad vissza sorokat.

Az újdonság a 3.8.3-as verzióban:

  • Hozzáadta a támogatást a közös táblázatokhoz és a CON záradékhoz.
  • Hozzáadta a printf () SQL függvényt.
  • A sqlite3_create_function () és a kapcsolódó interfészekhez hozzáadott SQLITE_DETERMINISTIC opcionális bitként szerepel a negyedik argumentumban, amely lehetővé teszi az alkalmazások számára új funkciók létrehozását, amelyek a belső hurkokból kiszámíthatók, ha állandó argumentumokkal rendelkeznek.
  • Adjon hozzá SQLITE_READONLY_DBMOVED hibaüzenetet, amelyet a tranzakció elején visszaküld, jelezve, hogy az alapul szolgáló adatbázis fájlt átnevezték vagy áthelyezték az SQLite alatt.
  • Az ATTACH fájlnév argumentumában tetszőleges kifejezéseket, beleértve a függvényhívásokat és a felkéréseket is engedélyezhet.
  • Valamennyi VALUES záradék használata bárhol használható SELECT utasítás érvényes.
  • Az N == 0 meghívásakor az sqlite3_randomness (N, P) által használt PRNG-t újrahasznosította. Automatikusan reseed egy villa után () az unixon.
  • Javítsd ki a spellfix1 virtuális táblát, hogy hatékonyan keressen fel sort.
  • Teljesítménynövelés.
  • A VDBE byte-code megjegyzéseinek javítása az EXPLAIN futtatásakor.
  • Adja hozzá a "% token_class" direktívát a LEMON elemző generátorhoz, és egyszerűsítse a nyelvtant.
  • Módosítsa a LEMON forráskódot, hogy elkerülje az OpenBSD által veszélyesnek tartott C-könyvtári függvények hívását. (Pl .: sprintf).
  • Hibajavítás: A parancssori CSV-beolvasási funkciónál ne vesszen véget egy mező, ha a CRLN-vonal végén egy letapogatott kettős hivatkozás történik.
  • SQLITE_SOURCE_ID: "2014-02-03 13:52:03 e816dd924619db5f766de6df74ea2194f3e3b538"
  • SHA1 a sqlite3.c fájlhoz: 98a07da78f71b0275e8d9c510486877adc31dbee

Hasonló program

Mroonga
Mroonga

17 Feb 15

Postgres Plus
Postgres Plus

3 Jun 15

Free-Vote
Free-Vote

3 Jun 15

Hozzászólások a SQLite

Hozzászólás nem található
Megjegyzés hozzáadása
Kapcsolja be a képeket!