{"id":67558,"date":"2023-12-05T13:19:46","date_gmt":"2023-12-05T12:19:46","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=67558&#038;preview=true&#038;preview_id=67558"},"modified":"2023-12-18T17:58:16","modified_gmt":"2023-12-18T16:58:16","slug":"active-record-query-optimierung","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/","title":{"rendered":"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung"},"content":{"rendered":"<p>Als Ruby on Rails-Entwickler\/in ist es wichtig zu wissen, wie man Datenbankabfragen optimiert, um die Leistung zu verbessern und das Nutzererlebnis zu steigern. <a href=\"https:\/\/guides.rubyonrails.org\/active_record_basics.html\" target=\"_blank\" rel=\"noopener noreferrer\">Active Record<\/a>, das ORM-Tool <a href=\"https:\/\/en.wikipedia.org\/wiki\/Object%E2%80%93relational_mapping\" target=\"_blank\" rel=\"noopener noreferrer\">(Object-Relational Mapping<\/a>) f\u00fcr Rails, bietet leistungsstarke Funktionen f\u00fcr effiziente Datenbankabfragen.<\/p>\n<p>Die Optimierung von Datenbankabfragen ist ein komplexes Thema, zu dem viele B\u00fccher geschrieben wurden. Hier werden wir einige Techniken und Tipps vorstellen, mit denen du deine Active Record-Abfragen optimieren und die Geschwindigkeit und Reaktionsf\u00e4higkeit deiner Anwendung verbessern kannst.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Selektive Spaltenabfrage verwenden<\/h2>\n<p>Eine der effektivsten Methoden zur Optimierung von Active Record-Abfragen besteht darin, nur die ben\u00f6tigten Spalten aus der Datenbank abzurufen. Indem du genau die Spalten angibst, die du ben\u00f6tigst, minimierst du die Daten, die zwischen der Datenbank und deiner <a href=\"https:\/\/kinsta.com\/de\/blog\/ruby-on-rails-anwendungen\/\">Ruby on Rails-Anwendung<\/a> \u00fcbertragen werden. Wenn wir zum Beispiel nur Namen aus der Datenbank abfragen wollen:<\/p>\n<pre><code class=\"language-ruby\"># Unoptimized Practice: Retrieving all columns\nUser.all\n\n# Optimized Practice: Selecting specific columns\nUser.select(:id, :name)<\/code><\/pre>\n<h2>Eager Loading einsetzen<\/h2>\n<p>Eager Loading hilft, die Anzahl der Datenbankabfragen zu reduzieren, indem verkn\u00fcpfte Datens\u00e4tze im Voraus geladen werden. Durch das Vorladen von Verkn\u00fcpfungen vermeidest du das <strong><a href=\"https:\/\/www.youtube.com\/watch?v=ktZLpjCanvg&#038;t=267s\">N+1-<\/a><\/strong><a href=\"https:\/\/www.youtube.com\/watch?v=ktZLpjCanvg&#038;t=267s\" target=\"_blank\" rel=\"noopener noreferrer\">Abfrageproblem<\/a>, bei dem zus\u00e4tzliche Abfragen f\u00fcr jeden verkn\u00fcpften Datensatz ausgef\u00fchrt werden. Im Folgenden findest du ein Beispiel f\u00fcr das <strong>N+1-Abfrageproblem<\/strong>. Anschlie\u00dfend stellen wir eine alternative Technik vor, die <a href=\"https:\/\/blog.appsignal.com\/2018\/04\/03\/russian-doll-caching-in-rails.html\" target=\"_blank\" rel=\"noopener noreferrer\">Russian Doll Caching<\/a> genannt wird.<\/p>\n<pre><code class=\"language-ruby\"># N+1 query problem\nusers = User.all\nusers.each { |user| puts user.posts.count }  # Executes one query for users and N queries for posts (N = number of users)<\/code><\/pre>\n<p>Im obigen Beispiel rufen wir alle Nutzer ab und iterieren dann \u00fcber jeden Nutzer, um die Anzahl der zugeh\u00f6rigen Beitr\u00e4ge zu ermitteln. Dies f\u00fchrt dazu, dass <strong>N<\/strong> zus\u00e4tzliche Abfragen ausgef\u00fchrt werden, was zu einer Leistungsverschlechterung f\u00fchrt.<\/p>\n<p>Um dieses Problem zu l\u00f6sen, k\u00f6nnen wir mit der Methode <code>includes<\/code> eager loading verwenden, wie unten gezeigt:<\/p>\n<pre><code class=\"language-ruby\"># Eager loading solution\nusers = User.includes(:posts).all\nusers.each { |user| puts user.posts.count }  # Executes two queries: one for users and one for posts (regardless of user count)<\/code><\/pre>\n<p>Mit der Methode <code>includes(:posts)<\/code> laden wir die assoziierten Beitr\u00e4ge f\u00fcr alle Nutzer in nur zwei Abfragen. Die Methode <code>includes<\/code> l\u00e4dt die Assoziationsdaten effizient vor, so dass keine zus\u00e4tzlichen Abfragen erforderlich sind und die Leistung erheblich verbessert wird.<\/p>\n<h3>Alternative Technik: Russian Doll Caching<\/h3>\n<p>Neben dem Eager Loading gibt es noch eine weitere Technik zur Optimierung von Datenbankabfragen: das <a href=\"https:\/\/kinsta.com\/de\/blog\/rails-caching\/#russian-doll-caching-in-ruby-on-rails\">Russian Doll Caching<\/a>. Bei dieser Technik werden hierarchische Datenstrukturen und ihre Assoziationen zwischengespeichert, was einen effizienten Abruf ohne redundante Abfragen erm\u00f6glicht.<\/p>\n<p>Nehmen wir ein Beispiel, bei dem wir eine Liste von Blogbeitr\u00e4gen und den dazugeh\u00f6rigen Kommentaren abrufen:<\/p>\n<pre><code class=\"language-ruby\"># Without caching (N+1 query problem)\n@posts = Post.all\n@posts.each do |post|\n  @comments = post.comments\n  # Perform actions with comments\nend<\/code><\/pre>\n<p>Im obigen Code l\u00f6st jede Iteration der Schleife eine Abfrage aus, um die Kommentare f\u00fcr jeden Beitrag abzurufen, was zu <strong>N<\/strong> zus\u00e4tzlichen Abfragen f\u00fchrt.<\/p>\n<p>Um Russian Doll Caching zu implementieren, k\u00f6nnen wir einen Caching-Ansatz wie <a href=\"https:\/\/kinsta.com\/de\/blog\/rails-caching\/#fragment-caching-in-ruby-on-rails\">Fragment Caching<\/a> verwenden. Durch das Zwischenspeichern der gesamten Ansicht oder eines Teils davon, einschlie\u00dflich der zugeh\u00f6rigen Datens\u00e4tze, k\u00f6nnen wir \u00fcberfl\u00fcssige Abfragen vermeiden. Hier ist ein Beispiel:<\/p>\n<pre><code class=\"language-ruby\"># With Russian Doll Caching\n&lt;% cache @posts do %&gt;\n  &lt;% @posts.each do |post| %&gt;\n    &lt;% cache post do %&gt;\n      &lt;%= post.title %&gt;\n      &lt;% post.comments.each do |comment| %&gt;\n        &lt;%= comment.content %&gt;\n      &lt;% end %&gt;\n    &lt;% end %&gt;\n  &lt;% end %&gt;\n&lt;% end %&gt;<\/code><\/pre>\n<p>In dieser Implementierung cachen wir das <code>@posts<\/code> Objekt und jeden einzelnen Beitrag mit Hilfe des <code>cache<\/code> Helper. Beim Rendern der Ansicht oder des Teilbereichs pr\u00fcft Rails den Cache, bevor der Code ausgef\u00fchrt wird, sodass keine zus\u00e4tzlichen Abfragen erforderlich sind.<\/p>\n<p>Wenn du Russian Doll Caching implementierst, kannst du die Leistung optimieren, indem du Datenbankabfragen minimierst und hierarchische Datenstrukturen und ihre Verkn\u00fcpfungen effizient abrufst.<\/p>\n<p>Eager Loading ist eine leistungsstarke Technik, um das <strong>N+1<\/strong>-Abfrageproblem durch das Vorladen von Assoziationen zu vermeiden. Au\u00dferdem bietet Russian Doll Caching einen alternativen Ansatz zur Optimierung von Datenbankabfragen, indem hierarchische Datenstrukturen und ihre Assoziationen zwischengespeichert werden.<\/p>\n<p>Durch den Einsatz dieser Techniken kannst du die Leistung und Reaktionsf\u00e4higkeit deiner Ruby on Rails-Anwendungen steigern. W\u00e4hle den Ansatz, der am besten zu den Bed\u00fcrfnissen und Feinheiten deiner Anwendung passt.<\/p>\n<p><a href=\"https:\/\/kinsta.com\/de\/blog\/ruby-on-rails-anwendungen\/\">Es gibt Gems<\/a>, die dir bei der Identifizierung von <strong>N+1<\/strong>-Abfragen helfen, w\u00e4hrend du deine Anwendung entwickelst. Gems wie <a href=\"https:\/\/github.com\/flyerhzm\/bullet\" target=\"_blank\" rel=\"noopener noreferrer\">Bullet<\/a>, <a href=\"https:\/\/github.com\/MiniProfiler\/rack-mini-profiler\" target=\"_blank\" rel=\"noopener noreferrer\">Rack Mini Profiler<\/a> und <a href=\"https:\/\/github.com\/charkost\/prosopite\" target=\"_blank\" rel=\"noopener noreferrer\">Prosopite<\/a> sind einige Beispiele, die es wert sind, f\u00fcr dein Projekt in Betracht gezogen zu werden.<\/p>\n<h2>Nutze die Indexierung<\/h2>\n<p>Indizes verbessern die Abfrageleistung, indem sie es der Datenbank erm\u00f6glichen, Datens\u00e4tze schneller zu finden. In Active Record kannst du Indizes zu deinem Datenbankschema hinzuf\u00fcgen, insbesondere f\u00fcr Spalten, die h\u00e4ufig in Abfragen verwendet werden. Zum Beispiel:<\/p>\n<pre><code class=\"language-ruby\"># Add index to improve performance\nadd_index :users, :email<\/code><\/pre>\n<p>Au\u00dferdem gibt es Gems, die dir dabei helfen k\u00f6nnen, herauszufinden, wo du Indizes hinzuf\u00fcgen solltest, z. B. die Gems <a href=\"https:\/\/github.com\/plentz\/lol_dba\" target=\"_blank\" rel=\"noopener noreferrer\">lol_dba<\/a> oder <a href=\"https:\/\/github.com\/djezzzl\/database_consistency#missingindexchecker\" target=\"_blank\" rel=\"noopener noreferrer\">database_consistency<\/a>.<\/p>\n<h2>Optimiere Datenbankabfragen mit Bedingungen<\/h2>\n<p>Wenn du Abfragen erstellst, solltest du datenbankspezifische Funktionen f\u00fcr Bedingungen verwenden, um unn\u00f6tige Datenabfragen zu vermeiden. Active Record bietet verschiedene Methoden zur Optimierung von Abfragebedingungen, z. B. <code>where<\/code>, <code>limit<\/code>, <code>offset<\/code> und <code>order<\/code>. Hier ein Beispiel:<\/p>\n<pre><code class=\"language-ruby\"># Unoptimized query\nusers = User.all\nusers.select { |user| user.age &gt; 18 && user.age &lt; 25 }\n\n# Optimized query\nusers = User.where(age: 19..24).all<\/code><\/pre>\n<h2>Batch-Verarbeitung f\u00fcr gro\u00dfe Datens\u00e4tze<\/h2>\n<p>Die Arbeit mit gro\u00dfen Datens\u00e4tzen kann die Leistung aufgrund von Speicherbeschr\u00e4nkungen beeintr\u00e4chtigen. Ziehe in Erw\u00e4gung, Batch-Verarbeitung zu nutzen, um Abfragen in kleinere Teile aufzuteilen und so den Speicherbedarf zu reduzieren. Dieser Ansatz ist besonders n\u00fctzlich, wenn du Vorg\u00e4nge wie das Aktualisieren oder L\u00f6schen von Datens\u00e4tzen durchf\u00fchrst.<\/p>\n<p>Es ist jedoch wichtig, Batch-Verarbeitung richtig einzusetzen, um eine optimale Leistung zu erzielen. Schauen wir uns ein Beispiel f\u00fcr eine schlechte Batch-Verarbeitung an und wie sie sich negativ auf deine Anwendung auswirken kann:<\/p>\n<pre><code class=\"language-ruby\"># Unoptimized Practice: Naive batch processing\nusers = User.all\nusers.each do |user|\n  # Perform operations on user record\nend<\/code><\/pre>\n<p>Im obigen Codeschnipsel holen wir alle Benutzerdatens\u00e4tze mit <code>User.all<\/code> aus der Datenbank. Dies kann bei gro\u00dfen Datens\u00e4tzen zu einem erheblichen Leistungsproblem f\u00fchren, da alle Datens\u00e4tze auf einmal in den Speicher geladen werden. Das kann dazu f\u00fchren, dass die Anwendung zu viel Speicherplatz verbraucht und langsamer wird.<\/p>\n<p>Um dieses Problem zu l\u00f6sen, \u00fcberarbeiten wir den Code mit einem optimierten Batch-Verarbeitungsansatz:<\/p>\n<pre><code class=\"language-ruby\"># Optimized Practice: Batch processing with `find_in_batches`\nUser.find_in_batches(batch_size: 1000) do |users_batch|\n  users_batch.each do |user|\n    # Perform operations on user record\n  end\nend<\/code><\/pre>\n<p>In dieser aktualisierten Implementierung verwenden wir die Methode <code>find_in_batches<\/code>, die von Active Record bereitgestellt wird. Diese Methode ruft die Datens\u00e4tze in kleineren B\u00fcndeln ab, die durch <code>batch_size<\/code> festgelegt werden, und verringert so den Speicherbedarf. Sie verarbeitet jeden B\u00fcndel von Datens\u00e4tzen in einem eigenen Speicherkontext, was die Leistung der Anwendung bei gro\u00dfen Datens\u00e4tzen erheblich verbessert.<\/p>\n<p>Durch die Verwendung von <code>find_in_batches<\/code> kannst du gro\u00dfe Datens\u00e4tze effektiv und speichereffizient verarbeiten. Vergiss nicht, die <code>batch_size<\/code> je nach Bedarf deiner Anwendung und den verf\u00fcgbaren Systemressourcen anzupassen.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Die Optimierung von Active Record-Abfragen ist entscheidend f\u00fcr die Verbesserung der Leistung deiner <a href=\"https:\/\/kinsta.com\/de\/blog\/ruby-vs-ruby-on-rails\/\">Ruby on Rails-Anwendungen<\/a>. Wenn du die Tipps in diesem Artikel befolgst &#8211; einschlie\u00dflich selektivem Spaltenabruf, eager loading, Indizierung, Optimierung von Bedingungen und Batch-Verarbeitung &#8211; kannst du die Geschwindigkeit und Effizienz deiner Datenbankabfragen deutlich verbessern.<\/p>\n<p>Denke daran, dass die Feinabstimmung deiner Abfragen nicht nur die Benutzerfreundlichkeit verbessert, sondern auch die Belastung deines Datenbankservers verringert. Behalte diese Optimierungstechniken im Hinterkopf, damit deine Ruby on Rails-Anwendung auch bei gro\u00dfen Datenmengen reibungslos l\u00e4uft. Viel Spa\u00df beim Programmieren!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Als Ruby on Rails-Entwickler\/in ist es wichtig zu wissen, wie man Datenbankabfragen optimiert, um die Leistung zu verbessern und das Nutzererlebnis zu steigern. Active Record, das &#8230;<\/p>\n","protected":false},"author":309,"featured_media":67559,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[990],"class_list":["post-67558","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-webentwicklung-sprachen"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Tipps zur Optimierung von Active Record Queries - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung\" \/>\n<meta property=\"og:description\" content=\"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-12-05T12:19:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-12-18T16:58:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Lee Sheppard\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lee Sheppard\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\"},\"author\":{\"name\":\"Lee Sheppard\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/7072c1374cdb4e46b948fa7dfd8d857f\"},\"headline\":\"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung\",\"datePublished\":\"2023-12-05T12:19:46+00:00\",\"dateModified\":\"2023-12-18T16:58:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\"},\"wordCount\":1081,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\",\"name\":\"Tipps zur Optimierung von Active Record Queries - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg\",\"datePublished\":\"2023-12-05T12:19:46+00:00\",\"dateModified\":\"2023-12-18T16:58:16+00:00\",\"description\":\"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Web-Entwicklungssprachen\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/webentwicklung-sprachen\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/7072c1374cdb4e46b948fa7dfd8d857f\",\"name\":\"Lee Sheppard\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f03cc8e644a5d49785577ddca7ea15cb?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f03cc8e644a5d49785577ddca7ea15cb?s=96&d=mm&r=g\",\"caption\":\"Lee Sheppard\"},\"description\":\"Lee is an Agile certified full stack Ruby on Rails developer. With over six years in the tech industry he enjoys teaching, coaching Agile, and mentoring others. Lee also speaks at tech related events and has a background in design and illustration.\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/author\/leesheppard\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tipps zur Optimierung von Active Record Queries - Kinsta\u00ae","description":"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/","og_locale":"de_DE","og_type":"article","og_title":"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung","og_description":"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.","og_url":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2023-12-05T12:19:46+00:00","article_modified_time":"2023-12-18T16:58:16+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg","type":"image\/jpeg"}],"author":"Lee Sheppard","twitter_card":"summary_large_image","twitter_description":"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Lee Sheppard","Gesch\u00e4tzte Lesezeit":"6\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/"},"author":{"name":"Lee Sheppard","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/7072c1374cdb4e46b948fa7dfd8d857f"},"headline":"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung","datePublished":"2023-12-05T12:19:46+00:00","dateModified":"2023-12-18T16:58:16+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/"},"wordCount":1081,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/","url":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/","name":"Tipps zur Optimierung von Active Record Queries - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg","datePublished":"2023-12-05T12:19:46+00:00","dateModified":"2023-12-18T16:58:16+00:00","description":"Active Record, das Rails ORM (Object-Relational Mapping) Tool, bietet leistungsstarke Funktionen f\u00fcr die effiziente Abfrage von Datenbanken.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/active-record-query-optimization-tips.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/active-record-query-optimierung\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Web-Entwicklungssprachen","item":"https:\/\/kinsta.com\/de\/thema\/webentwicklung-sprachen\/"},{"@type":"ListItem","position":3,"name":"Tipps zur Optimierung von Active Record Queries: Steigere die Leistung deiner Ruby on Rails-Anwendung"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/7072c1374cdb4e46b948fa7dfd8d857f","name":"Lee Sheppard","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f03cc8e644a5d49785577ddca7ea15cb?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f03cc8e644a5d49785577ddca7ea15cb?s=96&d=mm&r=g","caption":"Lee Sheppard"},"description":"Lee is an Agile certified full stack Ruby on Rails developer. With over six years in the tech industry he enjoys teaching, coaching Agile, and mentoring others. Lee also speaks at tech related events and has a background in design and illustration.","url":"https:\/\/kinsta.com\/de\/blog\/author\/leesheppard\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/67558","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/309"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=67558"}],"version-history":[{"count":5,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/67558\/revisions"}],"predecessor-version":[{"id":67969,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/67558\/revisions\/67969"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/en"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/es"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/translations\/it"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/67558\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/67559"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=67558"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=67558"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=67558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}