Start Now

Simplify data migration and embrace a cloud native architecture with YugabyteDB Voyager!

Learn More

Author: Bryn Llewellyn

Natural versus Surrogate Primary Keys in a Distributed SQL Database

Natural versus Surrogate Primary Keys in a Distributed SQL Database

There’s a subtle, but critical, difference between the two notions business-unique key and primary key in a relational database. For example, in a users” table, the “user_id” could be the primary key while the “email_address” (which must be not null and unique) could be the business-unique key. The columns that implement each notion may or may not coincide. This post shows that,

Read more

Four Compelling Use Cases for PostgreSQL Table Functions

Four Compelling Use Cases for PostgreSQL Table Functions

Welcome to part three of a three-part series of posts on PostgreSQL’s table functions. These functions can be easily leveraged in a distributed SQL database like YugabyteDB, which is PostgreSQL compatible.

In this final post, I’ll discuss four realistic use cases that call for user-defined table functions and I’ll explain how each case is met using complete, self-contained code examples.

If you missed the two previous posts, make sure to check out:

Use Case #1: Parameterized View

In my blog post “Using Stored Procedures in Distributed SQL Databases”,

Read more

Implementing PostgreSQL User-Defined Table Functions in YugabyteDB

Implementing PostgreSQL User-Defined Table Functions in YugabyteDB

Welcome to part two of a three-part series of posts on PostgreSQL’s table functions. These functions can be easily leveraged in a distributed SQL database like YugabyteDB, which is PostgreSQL compatible.

In part one I gave a brief introduction to PostgreSQL’s table functions. Part three will cover some realistic use cases. I’ll introduce this second post by quoting that paragraph:

A regular language plpgsql user-defined function is implemented using the plain return statement.

Read more

An Introduction to PostgreSQL Table Functions in YugabyteDB

An Introduction to PostgreSQL Table Functions in YugabyteDB

Welcome to the first of a three-part series of posts on PostgreSQL’s table functions. These functions can be easily leveraged in a distributed SQL database like YugabyteDB, which is PostgreSQL compatible.

This series follows on from my “Using Stored Procedures in Distributed SQL Databases” post. In this series of posts we’ll cover:

  • What table functions are and why they’re useful
  • Demonstrate the use of some built-in SQL table functions
  • Introduce how you can implement a user-defined table function,

Read more

Using Stored Procedures in Distributed SQL Databases

Using Stored Procedures in Distributed SQL Databases

These days, most monolithic SQL databases support stored procedures. This support first emerged in commercially available offerings in the late nineteen eighties. However, stored procedure support is not yet standard in distributed SQL databases. In fact, YugabyteDB is just one of two in this category—supporting stored procedures written in PostgreSQL’s PL/pgSQL. (Aurora also supports stored procedures.) This post recaps the case for stored procedures that motivated their introduction all those years ago. And it describes a performance experiment that measures one of the benefits brought by using stored procedures: the reduction in client-server round trips for multi-statement business transactions.

Read more

The Benefit of Partial Indexes in Distributed SQL Databases

The Benefit of Partial Indexes in Distributed SQL Databases

If a partial index is used, instead of a regular one, on a nullable column—where only a small fraction of the rows have not null values for this column—then the response time for inserts, updates, and deletes can be shortened significantly. As a bonus, the response times for single row selects shorten a little bit too. This post explains what a partial index is, shows how to create one, describes the canonical use case that calls for a partial index,

Read more

Relational Data Modeling with Foreign Keys in a Distributed SQL Database

Relational Data Modeling with Foreign Keys in a Distributed SQL Database

Note added on October 31, 2019

A lot has happened since this post was published in July 2019. Back then, the current YugabyteDB version was 1.2.10. And now, it’s 2.0.3. My original text included some caveats and comments like “Until this support is added in a future release…”. Now, no caveats are needed. I therefore revised my text and the companion downloadable code to remove all reference to those earlier, interim,

Read more

Why I Moved from Oracle to YugaByte

Why I Moved from Oracle to YugaByte

I’m thrilled at the prospect of what lies ahead of me in my new job at YugaByte. I’ve just started in the role of Developer Advocate for YugabyteDB. This is an open source, cloud native, distributed SQL database—in other words, a database for the modern world. There’s an excellent brief description here.

I made this move a couple of weeks ago after almost thirty years at Oracle. I started with Oracle in the UK,

Read more

Learn More to Accelerate Your Retail Business

Ready to dive deeper into distributed SQL, YugabyteDB, and Yugabyte Cloud?
Learn at Yugabyte University
Learn More
Browse Yugabyte Docs
Read More
Join the Yugabyte Community
Join Now