SQLite - die Bananenschnecke der eingebettet Datenbanken
Actian Germany GmbH
April 29, 2020

Anfang des Monats habe ich eine Reihe von Blogs über SQLite gestartet. Der erste Blog befasste sich mit den Vorteilen, die SQLite sowohl gegenüber Flat Files als auch gegenüber den schwereren SQL-Datenbanken für Unternehmen bietet - und es bietet tatsächlich deutliche Vorteile gegenüber beiden. Bis zu einem gewissen Punkt. Und dieser Punkt war vor fünf Jahren.
Die Sache ist die: Wenn Sie ein Entwickler für mobile Geräte oder IoT sind oder wenn Sie verteilte Anwendungen und Daten von der Cloud auf den Edge ausdehnen, ist ein lokales eingebettet Datenmanagement eine wichtige Fähigkeit, und darin hat sich SQLite jahrelang ausgezeichnet. Aber während lokales und eingebettet Datenmanagement für moderne Datenmanagement notwendig - ja sogar entscheidend - ist, ist es in der in SQLite implementierten Form nicht ausreichend. Modernes Datenmanagement erfordert die Fähigkeit, Daten lokal zu verarbeiten und zu analysieren, sie Peer-to-Peer zu teilen, Daten zwischen Gateways, anderen intelligenten Maschinen und sogar zurück in die Cloud zu verschieben - und SQLite wurde nie dafür gebaut, diese Anforderungen kennenlernen .
Lassen wir einmal die Herausforderungen beiseite, die sich aus den Anforderungen an gemeinsam genutzte und verteilte Daten ergeben - darauf gehen wir im nächsten Teil ein - und betrachten wir die Einschränkungen von SQLite im Bereich der lokalen Datenverarbeitung, angefangen mit einer der wichtigsten, der Leistung.
SQLite ist einfach nur langsam.
Vor achtzehn Monaten haben wir Leistungstests von Actian Zen - unserer Zero-DBA eingebettet Nano-Footprint-Datenbank - gegendie neueste SQLite-Distribution durchgeführtund festgestellt, dass Zen je nach Operationum zwei Größenordnungen schneller ist. Okay, bei indizierten Löschvorgängen war es sogar um drei Größenordnungen schneller. Wir haben beide auf einem Raspberry Pi 3 laufen lassen, einem kleinen ARM-basierten Einplatinencomputer, den Sie bei Amazon für weniger als 50 Dollar kaufen können, um einen Vergleich zu ermöglichen. Zen Core und SQLite sind beide kostenlos, und Sie können diesen Test selbst durchführen.
Okay, die Langsamkeit von SQLite ist nicht wirklich neu. Jeder in der SQLite-Gemeinschaft weiß, dass SQLite schmerzhaft langsam ist. Warum ist es dann so beliebt geblieben? Praktisch gesehen war es weitgehend die einzige Lösung in der Stadt. Hierfür gibt es drei Gründe. Erstens ist es ein Open-Source-Angebot, das es seit über zwei Jahrzehnten gibt und das daher weithin bekannt ist. Zweitens ist es mit vielen Open-Source-Entwicklerpaketen gebündelt, vor allem mit Android. Und schließlich haben viele Datenbankanbieter SQLite irgendwann einmal als ihre "mobile" Ausgabe verpackt und umbenannt (siehe MongoDB und Couchbase). Es gibt sogar ein paar Start-ups, die SQLite buchstäblich ihr Etikett aufdrücken und Dienstleistungen rund um SQLite als ihr einziges Marktangebot verkaufen.
Hier kommen wir wieder auf diese Grenzen zurück: Die träge Leistung, die vor fünf Jahren gut genug war, wird für die nächsten fünf Jahre (geschweige denn für die Zeit danach) einfach nicht gut genug sein. Und die Performance-Probleme in SQLite werden nur noch schlimmer werden: Die Datenmanagement am Edge werden mit der Zeit immer anspruchsvoller werden, selbst für eingebettet Anwendungen.
Denken Sie an den zunehmenden Bedarf an lokaler Datenpersistenz. Es geht nicht mehr nur um einfache Zwischenspeicherung. Jetzt wird Datenpersistenz für rechenintensive lokale Datenverarbeitung und unbeaufsichtigtes Maschinelles Lernen benötigt. In diesen Szenarien sehen wir eine Flut von eingehenden Streaming , für die SQLite einfach nicht robust genug ist. Darüber hinaus steigt der Rechenaufwand für die Anfrage, Extraktion und Analyse vorhandener Muster aus der lokalen Datenbank und/oder denen externer Peers oder Upstream-Gateways.
Dabei geht es nicht nur um das Volumen der Streaming oder die Raffinesse der durchgeführten Analysen. Es gibt auch das Problem, dass mehrere Anwendungen gleichzeitig denselben Datensatz verwenden - oder sogar ein einziger Upstream-Konsument, der Daten von mehreren Downstream-Publishern abonniert und kopiert. Beide Fälle erfordern ein Maß an Zustimmung , das für SQLite architektonisch nicht in Frage kommt. Bestenfalls kann man sagen, dass SQLite versucht, Zustimmung simulieren, indem es die gesamte Datentabelle für alle Benutzer sperrt, die nicht gerade lesen oder schreiben - selbst wenn dieses Lesen oder Schreiben nur eine einzige Zeile betrifft -, anstatt die granulare Sperre zu verwenden, die eine echte ACID-konforme SQL-Datenbank bieten sollte. Das Endergebnis ist, dass SQLite zu ernsthaften Engpässen führt, wenn die Datenanforderungen und -mengen in praktischen IoT und mobilen Anwendungsfällen steigen.
Eine Aufstockung der Rechenleistung der SQLite zugrunde liegenden Plattform wird die Leistung dieses alternden Kampagnensystems nur unwesentlich verbessern. Was modernes Datenmanagement braucht, ist ein Gepard, und was wir mit SQLite haben, ist eine Bananenschnecke.
Und keines dieser Szenarien ist ein Szenario aus einer fernen Zukunft. Unternehmen begegnen diesen Herausforderungen schon heute in Situationen, in denen es um IoT mit Tausenden von Sensoren und vorgelagerten Gateways geht. Einige unserer Konkurrenten sehen sich ebenfalls mit diesen Herausforderungen konfrontiert, da immer mehr von ihnen SQLite als mobile Engine ablösen wollen.
Wenn Sie SQLite mit anderen Datenbanken getestet haben oder eine Veränderung in der Leistung Ihrer Anwendung dokumentiert haben, als Sie von Flat Files zu SQLite wechselten, lassen Sie es uns wissen. Schreiben Sie mir einfach eine E-Mail an lewis.carr@actian.com.
In der Zwischenzeit lesen Sie bitte meinen nächsten Blog darüber, was die nahezu allgegenwärtige Verwendung von SQLite als mobile Datenbank für die data sharing und die Bewegung von mobilen Geräten und IoT am Rande zur Cloud und zum Rechenzentrum bedeutet hat.
Wenn Sie bereit sind, SQLite zu überdenken, sollten Sie mehr über Actian Zen erfahren. Oder Sie können Zen Core kostenlos testen, das für Entwicklung und Vertrieb lizenzfrei ist.
Abonnieren Sie den Actian Blog
Abonnieren Sie den Blog von Actian, um direkt Dateneinblicke zu erhalten.
- Bleiben Sie auf dem Laufenden: Holen Sie sich die neuesten Informationen zu Data Analytics direkt in Ihren Posteingang.
- Verpassen Sie keinen Beitrag: Sie erhalten automatische E-Mail-Updates, die Sie informieren, wenn neue Beiträge veröffentlicht werden.
- Ganz wie sie wollen: Ändern Sie Ihre Lieferpräferenzen nach Ihren Bedürfnissen.