Dino Geek, versucht dir zu helfen

Wie gehe ich mit optimistischem und pessimistischem Sperren in MariaDB um?


Optimistisches und pessimistisches Sperren sind Strategien in Datenbanksystemen, um Datenintegrität und Konsistenz während der Zugriffe von mehreren Benutzern zu gewährleisten.

Die Wahl zwischen optimistischem und pessimistischem Sperren hängt oft von der Art der Anwendung ab, die die Datenbank verwendet.

1. Pessimistisches Sperren: Dieser Ansatz geht davon aus, dass Konflikte wahrscheinlich sind und sperrt daher eine Ressource, sobald ein Benutzer darauf zugreift, um Updates vorzunehmen. In MariaDB implementieren Sie pessimistisches Sperren, indem Sie die InnoDB-Transaktions-Sicherheitsstufen “LOCK IN SHARE MODE” und “FOR UPDATE” verwenden.

Beispiel:
```
BEGIN;
SELECT * FROM mytable WHERE id = 1 FOR UPDATE;

COMMIT;
```

2. Optimistisches Sperren: Dieser Ansatz geht davon aus, dass Konflikte unwahrscheinlich sind und erlaubt daher mehreren Benutzern gleichzeitig, auf dieselbe Ressource zuzugreifen. Konflikte werden erst bei der Bestätigung (Commit) der Transaktion entdeckt und müssen dann behoben werden. Optimistisches Sperren wird in MariaDB durch die Verwendung der InnoDB-Engines unterstützt, die Zeilenversionierung für READ COMMITTED und REPEATABLE READ-Isolationsebenen verwenden. Konflikte werfen dabei eine Ausnahme und die Transaktion muss wiederholt werden.

Beispiel:
```
START TRANSACTION;
SELECT A:=SUM(salary) FROM table WHERE type=1; UPDATE table SET summary=A WHERE type=1;
COMMIT;
```

In jedem Fall sollten Sie die Konsequenzen der Wahl zwischen optimistischem und pessimistischem Sperren für Ihre spezielle Anwendung berücksichtigen und die Entscheidung auf dieser Grundlage treffen.


Erstellen Sie einfach Artikel, um Ihr SEO zu optimieren
Erstellen Sie einfach Artikel, um Ihr SEO zu optimieren





DinoGeek bietet einfache Artikel über komplexe Technologien

Möchten Sie in diesem Artikel zitiert werden? Es ist ganz einfach, kontaktieren Sie uns unter dino@eiki.fr

CSS | NodeJS | DNS | DMARC | MAPI | NNTP | htaccess | PHP | HTTPS | Drupal | WEB3 | LLM | Wordpress | TLD | Domain | IMAP | TCP | NFT | MariaDB | FTP | Zigbee | NMAP | SNMP | SEO | E-Mail | LXC | HTTP | MangoDB | SFTP | RAG | SSH | HTML | ChatGPT API | OSPF | JavaScript | Docker | OpenVZ | ChatGPT | VPS | ZIMBRA | SPF | UDP | Joomla | IPV6 | BGP | Django | Reactjs | DKIM | VMWare | RSYNC | Python | TFTP | Webdav | FAAS | Apache | IPV4 | LDAP | POP3 | SMTP

| Whispers of love (API) | Déclaration d'Amour |






Rechtliche Hinweise / Allgemeine Nutzungsbedingungen