Database

Latest Posts in Database

Temp Tables, Filesorts, UTF8, VARCHAR, and Schema Design in MySQL

The other day we were doing some peer review on a schema change at SolarWinds and the topic of character set, column length, and the potential downsides of using utf8 came…

See Connection Latency with SolarWinds

Recently, one of our customers reached out to us about a problem they were having trouble diagnosing – they noticed that every once in a while, it took their MySQL…

Schemaless Databases Don’t Exist

There’s no such thing as a schemaless database. I know, lots of people want a schemaless database, and lots of companies are promoting their products as schemaless DBMSs. And schemaless…

What Is Com Admin Commands In MySQL?

If you’ve ever looked at the COM_XYZ status counters in MySQL’s SHOW STATUS output, you’ve probably seen Com_admin_commands. It’s not clear what this means, but it can be a major…

Query Digesting and String Quoting Syntax in SQL

One of the interesting challenges in writing a system like SolarWinds® Database Performance Monitor (DPM) is writing a query digesting algorithm that deals with all of the technology-specific features, bugs,…

Compressed Messages Using Kafka

First things first: A big shout out to the engineers at Shopify who work on Sarama, the Go Client we use for Kafka – they do a great job on…

How Database Performance Monitor Measures Queries

We often get questions about how we measure queries inside MySQL (and now PostgreSQL too). Many of these questions reveal assumptions about the metrics we provide and our methods for…

Distributed and Diverse: The New Reality of Modern Data Persistence

We create applications in an age of simple, powerful, flexible databases that do magic for us. There’s a large variety of modern databases that supply just what’s needed for lots…

Securing JSON APIs With Wrapper Objects

Security is a top priority. Leading companies such as Zappos, Dyn, and Etsy use Database Performance Monitor (DPM), a cloud-based database performance management service to monitor MySQL in production designed…

Go’s Connection Pool, Retries, and Timeouts

This is a story of intermittent 500 Internal Server errors from APIs, that ended up being caused by a hardcoded constant in Go’s database/sql package. I’ll mostly spare you the…