{"id":123245,"date":"2025-04-02T21:05:07","date_gmt":"2025-04-02T19:05:09","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql"},"modified":"2025-04-02T21:05:07","modified_gmt":"2025-04-02T19:05:09","slug":"razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql","title":{"rendered":"Die Entwickler von OrioleDB haben vorgeschlagen, die API f\u00fcr alternative PostgreSQL-Engines zu verbessern.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Die Entwickler von OrioleDB haben den aktuellen Stand der niedrigstufigen API, die f\u00fcr den Zugriff von Erweiterungen auf Tabellen und Indizes in PostgreSQL (Table\/Index Access Method (AM) API) verwendet wird, analysiert und Verbesserungsvorschl\u00e4ge unterbreitet. Seit der Einf\u00fchrung dieser API in PostgreSQL 12 haben die Entwickler die M\u00f6glichkeit erhalten, alternative Datenstorage-Mechanismen zu erstellen. Dennoch gibt es trotz der Existenz dieser API und der bekannten Einschr\u00e4nkungen des integrierten Speichermoduls bislang keine voll funktionsf\u00e4higen transaktionalen Storage-Engines, die ausschlie\u00dflich als Erweiterungen implementiert sind.    <\/p>\n<p>Die gefragtesten Funktionen f\u00fcr alternative tabellarische Engines in PostgreSQL sind:  <\/p>\n<ul>\n<li class=\"l\"> Alternative Implementierungen von MVCC, zum Beispiel Journal-basierte UNDO-Speicher.\n<li class=\"l\"> Index-organisierte Tabellen, bei denen der Index kein optionales Zusatzfeature zur Tabelle ist, das Anfragen beschleunigt, sondern die Hauptdatenstruktur darstellt, in der die Tabellendaten gespeichert sind.    <\/ul>\n<p>Die erforderlichen \u00c4nderungen an der API Table\/Index AM zur Unterst\u00fctzung alternativer MVCC-Implementierungen werden unter Ber\u00fccksichtigung der OrioleDB-Erweiterung diskutiert, die entwickelt wurde, um die bekannten M\u00e4ngel des integrierten Speichermoduls von PostgreSQL zu beheben. Das Problem besteht darin, dass f\u00fcr die vollst\u00e4ndige Integration von OrioleDB in PostgreSQL \u00c4nderungen am PostgreSQL-Code erforderlich sind, was die Umsetzung des Projekts erschwert und die Notwendigkeit einer Modernisierung der aktuellen API Table AM unterstreicht.    <\/p>\n<p>Die API Table AM zwingt nicht direkt zu einer bestimmten Implementierung von MVCC. Dennoch machen die API Table AM und die API Index AM folgende Annahme: Jeder TID (Tuple\/Row Identifier) wird entweder von allen Indizes indiziert oder gar nicht. Selbst wenn der Index AM mehrere Verweise auf einen einzigen TID hat (z. B. GIN), m\u00fcssen alle diese Verweise demselben indizierten Wert entsprechen.    <center><img decoding=\"async\" alt=\"Die Entwickler von OrioleDB haben vorgeschlagen, die API f\u00fcr alternative PostgreSQL-Engines zu verbessern.\" src=\"\/wp-content\/uploads\/2025\/04\/a2082618f49d887e6987a73c65091c59.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>      <\/p>\n<p>Dieses Prinzip wurde kritisiert, da es die Anzahl der Schreibvorg\u00e4nge (&#171;write amplification&#187;) erh\u00f6ht \u2014 wenn ein indizierter Attribut aktualisiert wird, muss jeder Index in der Tabelle aktualisiert werden. Um die Vorteile des UNDO-Logs voll auszusch\u00f6pfen oder eine andere Speichermethode ohne &#171;write amplification&#187; (z.B. die WARM-Methode) zu implementieren, muss diese Annahme m\u00f6glicherweise verletzt werden.  <center><img decoding=\"async\" alt=\"Die Entwickler von OrioleDB haben vorgeschlagen, die API f\u00fcr alternative PostgreSQL-Engines zu verbessern.\" src=\"\/wp-content\/uploads\/2025\/04\/da5adbec63e0b4c139733c5775b317b9.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>        <\/p>\n<p>Die auf UNDO basierende Table AM verletzt diese Annahme nicht und \u00e4hnelt der bestehenden HOT-Methode (Heap-Only Tuples), mit dem Unterschied, dass alte Versionen der Zeilen im UNDO-Log gespeichert werden und nicht auf derselben Seite untergebracht sein m\u00fcssen. Dennoch sind die Autoren der Meinung, dass dieser Vorteil nicht ausreicht, um die Existenz einer separaten Table AM zu rechtfertigen.    <\/p>\n<p>Praktische Einschr\u00e4nkungen der bestehenden API:    <\/p>\n<ul>\n<li class=\"l\"> W\u00e4hrend die Zeile der Tabelle aktualisiert wird, werden die Indizes nach dem Prinzip &#171;alles oder nichts&#187; aktualisiert.\n<li class=\"l\"> Mangel an der API Index AM zur punktuellen L\u00f6schung bestimmter Tuples. Derzeit k\u00f6nnen Tuples massenhaft \u00fcber die Methoden ambulkdelete und amvacuumcleanup aus Indizes gel\u00f6scht werden. Ein Versuch, punktuelle L\u00f6schung \u00fcber diese API zu implementieren, w\u00fcrde zu einer geringen Effizienz f\u00fchren, da die meisten aktuellen Implementierungen den gesamten Index scannen m\u00fcssen. Zudem erlaubt die API nicht anzugeben, welche der Tuples, die auf dasselbe TID verweisen, gel\u00f6scht werden sollen. Es kann nur alle l\u00f6schen.\n<li class=\"l\"> Indizes referenzieren derzeit die Zeilen der Tabelle \u00fcber die Blocknummer (32 Bit) und die Versatznummer (16 Bit). Nur 11 Bit der Versatznummer k\u00f6nnen sicher vom TID der Tabelle an alle Indexzugriffs-Methoden \u00fcbergeben werden. Dabei m\u00fcssen alternative MVCC-Implementierungen m\u00f6glicherweise zus\u00e4tzliche Nutzlast (payload) zusammen mit dem TID speichern. In OrioleDB zum Beispiel sind ein oder mehrere Bits erforderlich, um &#171;delete-marking&#187; Indizes oder vollst\u00e4ndige Sichtbarkeitsinformationen zu implementieren.      <\/ul>\n<p>Zwei Ans\u00e4tze wurden vorgeschlagen, um die praktischen Einschr\u00e4nkungen zu \u00fcberwinden:  <\/p>\n<ul>\n<p>Ansatz 1: API Index AM bietet M\u00f6glichkeiten f\u00fcr alternative MVCC-Implementierungen.    <\/p>\n<p>W\u00e4hrend der Table AM weiterhin f\u00fcr alle Komponenten von MVCC verantwortlich ist, bietet der Index AM die erforderlichen Funktionen f\u00fcr alternative MVCC-Implementierungen, insbesondere: Speicherung von benutzerdefinierter Nutzlast (payload) zusammen mit TID, eine Methode f\u00fcr punktuelles L\u00f6schen und sogar eine Methode f\u00fcr punktuelles Aktualisieren (wenn das TID im Index nicht ge\u00e4ndert werden kann, kann die benutzerdefinierte Nutzlast \u2013 das kann). Dar\u00fcber hinaus, da mehrere Tupel im Index auf dasselbe TID verweisen m\u00fcssen, m\u00fcssen auch die API-Methoden, die beim Scannen des Index verwendet werden, aktualisiert werden.    <\/p>\n<p>Ansatz 2: Indizes, die MVCC unterst\u00fctzen.    <\/p>\n<p>Eine Alternative w\u00e4re es, Indizes zuzulassen, die MVCC unterst\u00fctzen. Das bedeutet, der &#171;executor&#187; (oder m\u00f6glicherweise der Table AM) ruft einfach die Methoden insert() und delete() im Index AM auf, w\u00e4hrend der Index AM die M\u00f6glichkeit des Scannens unter Ber\u00fccksichtigung von MVCC bereitstellt. Dies w\u00fcrde das Scannen mit nur den Indizes erheblich vereinfachen. Selbst der gesamte Table AM k\u00f6nnte in einem solchen Fall eine Zwischenschicht werden, die Daten im Index speichert.    <\/p>\n<p>Im folgenden Diagramm wird ein Beispiel angezeigt. Der Wert des Index 2 wird durch die Transaktion 11 von \u201eA\u201c auf \u201eB\u201c aktualisiert. Daher wird der Wert \u201eA\u201c als xmax == 11 gekennzeichnet, w\u00e4hrend der Wert \u201eB\u201c als xmin == 11 markiert ist. So kann der Index 2 gescannt werden, um nur sichtbare Tupel gem\u00e4\u00df MVCC ohne Heap-\u00dcberpr\u00fcfungen zu erhalten. Die M\u00fcllabfuhr des Index 2 kann ebenfalls ohne die Verwendung eines Heaps durchgef\u00fchrt werden.    <center><img decoding=\"async\" alt=\"Die Entwickler von OrioleDB haben vorgeschlagen, die API f\u00fcr alternative PostgreSQL-Engines zu verbessern.\" src=\"\/wp-content\/uploads\/2025\/04\/9103127cc51f83c824c6cdc22135b470.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>  <\/p>\n<p>Bei der Implementierung aller genannten Neuerungen im API der Indexzugriffsmethoden ist es unwahrscheinlich, dass es gelingt, alle Indizes gleichzeitig f\u00fcr die Unterst\u00fctzung aller neuen Funktionen zu \u00fcberarbeiten. Realistischer w\u00e4re es, mehrere Implementierungen f\u00fcr eine Indexzugriffsmethode zuzulassen. Beispielsweise k\u00f6nnte das Erweiterungssystem neben dem herk\u00f6mmlichen B-Baum auch einen alternativen B-Baum mit Unterst\u00fctzung f\u00fcr MVCC innerhalb des Index und Unterst\u00fctzung f\u00fcr Aufzeichnungsidentifikatoren variabler L\u00e4nge implementieren.    <center><img decoding=\"async\" alt=\"Die Entwickler von OrioleDB haben vorgeschlagen, die API f\u00fcr alternative PostgreSQL-Engines zu verbessern.\" src=\"\/wp-content\/uploads\/2025\/04\/57e1c15ecdd08f7b8095f464b59523b9.png\" style=\"display:block;margin: 0 auto;\" \/><\/center>    <\/p>\n<p>Daher wird vorgeschlagen, nicht nur das API des Table AM, sondern auch das API des Index AM, das der PostgreSQL-Community \u00fcber viele Jahre treu gedient hat, zu \u00fcberarbeiten. Dar\u00fcber hinaus wird angeregt, den Index AM in eine logische Schicht und eine Implementierungsschicht zu unterteilen. Diese neu konzipierte Architektur w\u00fcrde es PostgreSQL erm\u00f6glichen, verschiedene Speichermodelle zu unterst\u00fctzen.<br \/>\n<br \/>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=62991\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 OrioleDB \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e API, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432 PostgreSQL (Table\/Index Access Method (AM) API), \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u0443\u0442\u0438 \u0435\u0433\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f. \u0421 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0432 PostgreSQL 12 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e API \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0434\u043d\u0430\u043a\u043e, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u044d\u0442\u043e\u0433\u043e API \u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":123246,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-123245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 OrioleDB \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e API, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432 PostgreSQL (Table\/Index Access Method (AM) API), \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u0443\u0442\u0438 \u0435\u0433\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/news\/razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 OrioleDB \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c API \u0434\u043b\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 PostgreSQL | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 OrioleDB \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e API, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432 PostgreSQL (Table\/Index Access Method (AM) API), \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u0443\u0442\u0438 \u0435\u0433\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-04-02T19:05:09+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-04-02T19:05:09+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Die Entwickler von OrioleDB haben vorgeschlagen, das API f\u00fcr alternative PostgreSQL-Engines zu verbessern | ProHoster","description":"Die Entwickler von OrioleDB haben den aktuellen Stand des niedrigstufigen API, das f\u00fcr den Zugriff von Erweiterungen auf Tabellen und Indizes in PostgreSQL (Table\/Index Access Method (AM) API) verwendet wird, analysiert und Verbesserungsvorschl\u00e4ge unterbreitet.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 OrioleDB \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c API \u0434\u043b\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0434\u0432\u0438\u0436\u043a\u043e\u0432 PostgreSQL | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 OrioleDB \u043f\u0440\u043e\u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0435\u043a\u0443\u0449\u0435\u0435 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043d\u0438\u0437\u043a\u043e\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u043e\u0433\u043e API, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0439 \u043a \u0442\u0430\u0431\u043b\u0438\u0446\u0430\u043c \u0438 \u0438\u043d\u0434\u0435\u043a\u0441\u0430\u043c \u0432 PostgreSQL (Table\/Index Access Method (AM) API), \u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u043f\u0443\u0442\u0438 \u0435\u0433\u043e.","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/razrabotchiki-orioledb-predlozhili-uluchshit-api-dlya-alternativnyh-dvizhkov-postgresql","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2025-04-02T19:05:09+00:00","article:modified_time":"2025-04-02T19:05:09+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"123245","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-23 11:48:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 11:48:19","updated":"2026-01-23 11:48:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/123245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=123245"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/123245\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/123246"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=123245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=123245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=123245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}