UUIDs in MySQL are really not random

Jouke Waleson points out to an interesting fact about UUIDs in MySQL, which you might have missed in the documentation:

Warning: Although UUID() values are intended to be unique, they are not necessarily unguessable or unpredictable. If unpredictability is required, UUID values should be generated some other way.

Make a note!

MySQL High Availability at GitHub

Shlomi Noach, GitHub’s Senior Infrastructure Engineer, shares some details on both the current and future high availability setup of MySQL databases at GitHub.

This is probably way too far out for most people using MySQL for their web applications.  But it does highlight the technical complexity of running high load web applications, and how some of the issues can be solved or worked around.

Pretty fascinating stuff there … 

mycli – MySQL command line client with auto-completion


mycli is a MySQL / MariaDB / Pecona database command line client with syntax highlighting and auto-completion.  Have a look at some of the screenshots and documentation for features.

Found via this StackOverflow discussion.

Metabase – Open Source business intelligence and analytics


Metabase is an Open Source business intelligence and analytics tool.  It supports a variety of databases and services as sources for data, and provides a number of data querying and processing tools.  Have a look at the GitHub repository as well.

And if you want a few alternatives or complimenting tools, I found this list quite useful.

Why Uber Engineering Switched from Postgres to MySQL


Why Uber Engineering Switched from Postgres to MySQL” is an interesting study with plenty of technical detail of how MySQL was a better choice than PostgreSQL for the very demanding growth of Uber.  These kinds of issues are probably way out of scope for any “regular Joe” application, but the insight into the differences of MySQL and PostgreSQL architectures is still useful.

Main PostgreSQL limitations covered by the study are:

  • Inefficient architecture for writes
  • Inefficient data replication
  • Issues with table corruption
  • Poor replica MVCC support
  • Difficulty upgrading to newer releases