This commit is contained in:
Adam Skotarczak 2025-08-06 19:22:59 +02:00
parent a3091b204c
commit 2db64d2583
Signed by: realAscot
GPG Key ID: 4CB9B8D93A96A538
5 changed files with 227 additions and 2 deletions

View File

@ -94,6 +94,7 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
### Linux
- [NFS-Freigaben](dokus/linux/nutzer-id-nfs_freigaben.md)
- [🖥️ Screen Terminal-Multiplexer für Linux](dokus/linux/screen.md)
- **Fedora**
- [Fedora Workstation Suspend deaktivieren](dokus/linux/fedora/suspend-deaktivieren.md)
- [Fedora-Handbuch für Debian/Ubuntu-Umsteiger](dokus/linux/fedora/fedora-handbuch-umstieg.md)
@ -143,6 +144,7 @@ Unter `./tools/` befinden sich Programme/ Skripte (aktuell in Typescript und Pyt
#### ts - js - node
- [Einstieg in JavaScript-Dialekte und TypeScript-Konfiguration](dokus/js-ts/js-ts-dialekte.md)
- [🛠️ better-sqlite3: Die leistungsstarke SQLite-Bibliothek für Node.js](dokus/js-ts/better-sqlite3.md)
---

View File

@ -1,2 +1,2 @@
0.9.0
20.07.2025
0.10.0
06.08.2025

View File

@ -0,0 +1,112 @@
# 🛠️ better-sqlite3: Die leistungsstarke SQLite-Bibliothek für Node.js
- [🛠️ better-sqlite3: Die leistungsstarke SQLite-Bibliothek für Node.js](#-better-sqlite3-die-leistungsstarke-sqlite-bibliothek-für-nodejs)
- [📜 Entstehung und Motivation](#-entstehung-und-motivation)
- [📦 Installation](#-installation)
- [⚖️ Lizenz](#-lizenz)
- [🌐 Community und Unterstützung](#-community-und-unterstützung)
- [🚀 Features](#-features)
- [🔍 Unterschiede zu `node-sqlite3`](#-unterschiede-zu-node-sqlite3)
- [🧠 Best Practices](#-best-practices)
- [📚 Quellen](#-quellen)
- [🧩 Fazit](#-fazit)
---
**better-sqlite3** ist eine moderne, synchron arbeitende SQLite-Bibliothek für Node.js, die sich durch hohe Performance, einfache Bedienung und umfassende Funktionalität auszeichnet. Sie wurde entwickelt, um die Schwächen anderer SQLite-Bindings wie `node-sqlite3` zu überwinden und bietet eine robuste Alternative für Entwickler, die mit SQLite in JavaScript arbeiten möchten.
---
## 📜 Entstehung und Motivation
Die Bibliothek wurde von [Joshua Wise](https://github.com/JoshuaWise) entwickelt und wird unter dem GitHub-Projekt [WiseLibs/better-sqlite3](https://github.com/WiseLibs/better-sqlite3) gepflegt. Ziel war es, eine SQLite-Binding zu schaffen, die:
- **Synchron arbeitet**, um die Komplexität asynchroner APIs zu vermeiden
- **Sicher und effizient** ist, ohne auf Low-Level-C-APIs zurückgreifen zu müssen
- **Einfach zu bedienen** ist, mit klaren Methoden und verständlicher API
---
## 📦 Installation
```bash
npm install better-sqlite3
```
Erfordert Node.js **v14.21.1 oder höher**. Prebuilt-Binaries sind für LTS-Versionen verfügbar.
---
## ⚖️ Lizenz
Die Bibliothek steht unter der **MIT-Lizenz**, was eine freie Nutzung, Modifikation und Verbreitung erlaubt.
---
## 🌐 Community und Unterstützung
- Über **6.000 GitHub-Stars** und eine aktive Entwicklergemeinschaft
- Unterstützt durch Spenden via GitHub Sponsors, Patreon und PayPal
- Wird von tausenden Entwicklern täglich verwendet
---
## 🚀 Features
- **Schnelle Performance**: Benchmarks zeigen, dass `better-sqlite3` in vielen Fällen deutlich schneller ist als `node-sqlite3`
- **Sichere Transaktionen**
- **Benutzerdefinierte Funktionen und Aggregate**
- **Virtuelle Tabellen und Erweiterungen**
- **64-Bit-Integer-Unterstützung**
- **Worker-Thread-Support für große/langsame Abfragen**
- **Einfache API**: z.B. `db.prepare(...).get()` für eine einzelne Zeile
---
## 🔍 Unterschiede zu `node-sqlite3`
| Merkmal | better-sqlite3 | node-sqlite3 |
|-------------------------------|----------------------------------|----------------------------------|
| API-Typ | Synchron | Asynchron |
| Speicherverwaltung | JavaScript (GC) | Low-Level C |
| Performance | Sehr hoch | Deutlich langsamer in Benchmarks |
| Komplexität | Einfach | Komplexer |
| Erweiterbarkeit | Hoch | Eingeschränkt |
> Benchmarks zeigen z.B. beim Einfügen von 100 Zeilen eine bis zu **15-fache Geschwindigkeitssteigerung** gegenüber `sqlite3`.
---
## 🧠 Best Practices
- **WAL-Modus aktivieren** für bessere Performance:
```js
db.pragma('journal_mode = WAL');
```
- **Transaktionen nutzen** für Bulk-Inserts:
```js
const insert = db.prepare('INSERT INTO users (name) VALUES (?)');
const insertMany = db.transaction((names) => {
for (const name of names) insert.run(name);
});
insertMany(['Alice', 'Bob', 'Charlie']);
```
---
## 📚 Quellen
- [better-sqlite3 auf npm](https://www.npmjs.com/package/better-sqlite3)
- [GitHub-Projektseite](https://github.com/WiseLibs/better-sqlite3)
- [Vergleich mit node-sqlite3 auf npm](https://www.npmjs.com/package/better-sqlite3)
---
## 🧩 Fazit
**better-sqlite3** ist eine exzellente Wahl für Node.js-Projekte, die SQLite nutzen möchten. Die Kombination aus Performance, einfacher API und aktiver Community macht sie zur bevorzugten Lösung gegenüber traditionellen Bindings wie `node-sqlite3`.
Wenn du mit SQLite arbeitest und dir Synchronität, Geschwindigkeit und Klarheit wichtig sind dann ist better-sqlite3 dein Werkzeug der Wahl.

109
dokus/linux/screen.md Normal file
View File

@ -0,0 +1,109 @@
# 🖥️ Screen Terminal-Multiplexer für Linux
- [🖥️ Screen Terminal-Multiplexer für Linux](#-screen--terminal-multiplexer-für-linux)
- [📦 Installation](#-installation)
- [🚀 Eine neue Screen-Sitzung starten](#-eine-neue-screen-sitzung-starten)
- [🔄 Sitzung trennen (detach)](#-sitzung-trennen-detach)
- [🔙 Sitzung wieder verbinden (reattach)](#-sitzung-wieder-verbinden-reattach)
- [❌ Sitzung beenden](#-sitzung-beenden)
- [🧠 Nützliche Shortcuts](#-nützliche-shortcuts)
- [📁 Weitere Tipps](#-weitere-tipps)
`screen` erlaubt dir, mehrere Shell-Sitzungen zu starten, zu trennen und später wieder aufzurufen ideal für Serverprozesse wie Game-Server, die im Hintergrund laufen sollen.
---
## 📦 Installation
```bash
sudo apt update
sudo apt install screen
```
---
## 🚀 Eine neue Screen-Sitzung starten
```bash
screen -S sitzungsname
```
Beispiel:
```bash
screen -S 7dtd
```
---
## 🔄 Sitzung trennen (detach)
Drücke:
```text
Ctrl + A, dann D
```
➤ Die Sitzung läuft weiter im Hintergrund.
---
## 🔙 Sitzung wieder verbinden (reattach)
```bash
screen -r sitzungsname
```
Oder alle Sitzungen anzeigen:
```bash
screen -ls
```
Dann verbinden mit:
```bash
screen -r <ID oder Name>
```
---
## ❌ Sitzung beenden
1. Zurück in die Sitzung:
```bash
screen -r sitzungsname
```
2. Beende den laufenden Prozess (z.B. mit `Ctrl + C` oder `exit`)
3. Oder Sitzung direkt killen:
```bash
screen -S sitzungsname -X quit
```
---
## 🧠 Nützliche Shortcuts
| Shortcut | Funktion |
|------------------|-------------------------------------|
| `Ctrl + A, D` | Sitzung trennen (detach) |
| `Ctrl + A, C` | Neue Shell in der Sitzung öffnen |
| `Ctrl + A, N` | Nächste Shell |
| `Ctrl + A, P` | Vorherige Shell |
| `Ctrl + A, "` | Alle Shells anzeigen |
| `Ctrl + A, K` | Aktuelle Shell killen |
| `Ctrl + A, ?` | Hilfe anzeigen |
---
## 📁 Weitere Tipps
- Du kannst mehrere Shells in einer Sitzung öffnen und zwischen ihnen wechseln.
- Ideal für Game-Server, Backups, oder lang laufende Prozesse.
- Funktioniert auch über SSH perfekt für Remote-Server.
---

View File

@ -26,3 +26,5 @@ dokus/products/voltcraft625logicprobe/voltcraft625-logic-probe-anleitung.md
dokus/grundlagen/wahrheitstabelle.md
dokus/git/git_workflow.md
dokus/frameworks/havok-engine.md
dokus/linux/screen.md
dokus/js-ts/better-sqlite3.md