Systems | Development | Analytics | API | Testing

Databases

Databases Demystified Lesson 10: Query Planning and Optimization

In this lesson, we talk about what a query planner is and does in the database. We talk about the difference between declarative and imperative programming languages, and we wrap up with a discussion of some common strategies for database optimization to improve query speed.

Executing SQL Joins in REST APIs Using DreamFactory

As a follow up to our previous blog post about retrieving related data from that REST API, I wanted to dive deeper into the power of the “related records” feature of DreamFactory’s database-backed APIs. One of the powerful features of SQL databases is the ability to relate separate data records and perform queries that retrieve that related data all at once. One problem is that this requires a fairly in-depth knowledge of your database, it’s schema, and SQL syntax.

Find Where N+1 Database Queries Affect Your Application

One of the Scout’s key features is its ability to quickly highlight N+1 queries in your application that you might not have been aware of, and then show you the exact line of code that you need to look at in order to fix it. In this video, we will use a Ruby on Rails application as an example, but the same concepts apply to other popular web frameworks.

Episode 9: Introduction to Indexes

In this episode, we learn about a very important technique for making database queries faster: indexes! Indexes are a very powerful technique and are critical to understanding how databases work under the hood. In this lesson we talk about how database indexes make use of the binary search algorithm to speed up queries. We also cover the trade-offs associated with using database indexes, and why it might not be a good idea to use too many indexes.

Understanding Database Transactions in Rails

Few things are scarier than a database slowly losing integrity over weeks or years. For a while, nobody notices anything. Then users start reporting bugs, yet you can't find any code that's broken. By the time you realize the problem, it may be happening for so long that your backups are unusable. We can avoid problems like these with skillful use of transactions.

Django and the N+1 Queries Problem

The N+1 Queries Problem is a perennial database performance issue. It affects many ORM’s and custom SQL code, and Django’s ORM is not immune either. In this post, we’ll examine what the N+1 Queries Problem looks like in Django, some tools for fixing it, and most importantly some tools for detecting it. Naturally, Scout is one of those tools, with its built-in N+1 Insights tool.

How to Create SQL Percentile Aggregates and Rollups With Postgresql and t-digest

When it comes to data, let’s start with the obvious. Averages suck. As developers, we all know that percentiles are much more useful. Metrics like P90, P95, P99 give us a much better indication of how our software is performing. The challenge, historically, is how to track the underlying data and calculate the percentiles. Today I will show you how amazingly easy it is to aggregate and create SQL based percentile rollups with Postgresql and t-digest histograms!

Cloudera Operational Database experience (dbPaaS) available as Technical Preview

The Cloudera Operational Database (COD) experience is a managed dbPaaS solution which abstracts the underlying cluster instance as a Database. It can auto-scale based on the workload utilization of the cluster and will be adding the ability to auto-tune (better performance within the existing infrastructure footprint) and auto-heal (resolve operational problems automatically) later this year.