Showing entries 1 to 10 of 42565
10 Older Entries »
MySQL Adventures: CPU Cores and IOPS on GCE

TL;DR — If you are hosting your database server in GCE, then you have to be very cautious with capacity planning. The number of CPU cores has an impact on IOPS you get. Even if your workload is not CPU intensive, you might want to provision enough depending on the kind of IOPS you are going to need. For more details, read through one of the problems we faced and the RCA.

Problem statement:

We had a master-slave setup for one of the MySQL database servers. The MySQL server’s performance was good, we didn’t notice any performance related issues initially. But we recently noticed replication lag on the slave. and we figured out that the slave thread was very slow.

Server’s Capacity:

Both our master-slave servers are of the same size.

  • 4 Core CPU
  • 16GB Memory
  • 2 databases are hosted
  • 20GB is the database size.
[Read more]
Automating MySQL schema migrations with GitHub Actions and more

In the past year, GitHub engineers shipped GitHub Packages, Actions, Sponsors, Mobile, security advisories and updates, notifications, code navigation, and more. Needless to say, the development pace at GitHub is accelerated.

With MySQL serving our backends, updating code requires changes to the underlying database schema. New features may require new tables, columns, changes to existing columns or indexes, dropping unused tables, and so on. On average, we have two schema migrations running daily on our production servers. Some days we have a half dozen migrations to run. We’ll cover how this amounted to a significant toil on the database infrastructure team, and how we searched for a solution to automate the manual parts of the process.

What’s in a migration?

At first …

[Read more]
MySQL Support Engineers Sought For Positions in Australia, Russia, Mexico and Philippines

Oracle, the world's premier database company, is hiring expert technical support staff for MySQL - the world's most popular open source database! By joining this proven team of MySQL professionals, you will assist customers in the resolution of their issues with your wide-ranging skill set. From explaining database internals to reviewing schema design, from application architecture review to client code analysis, from best practices definition to defect analysis - customers will look to you for assistance in addressing their needs in a timely, professional manner. You will continually exercise and grow your diverse skills as you deliver the highest quality support possible to customers. Work location is flexible.

Job duties are varied and complex utilizing …

[Read more]
The MySQL Track at the Southern California Linux Expo 2020

  Friday March 6th you need to be in Pasadena, California for the MySQL Track at the Southern California Linux Expo. SCaLE is the biggest open source show in North America and the only one in the great Los Angeles area. 

  We have been lucky to have a MySQL track for the last several years and this year I think we have the best lineup ever!  We start at 9:30 in room 101 with Michael Marx's presentation on InnoDB Cluster, then switch to Building a Database as a Service on Kubernetes by Lucy Burns and Abhi Vaidyanatha.  Next Alexander Rubin speaks on Protecting Personal and Health Data in MySQL before lunch.

After lunch comes Implementing MySQL Database-as-a-Service using Open Source tools by Matthias …

[Read more]
Introduction to MySQL 8.0 Recursive Common Table Expression (Part 2)

This is the second part of a two-articles series. In the first part, we introduced the Common Table Expression (CTE), a new feature available on MySQL 8.0 as well as Percona Server for MySQL 8.0. In this article, we’ll present the Recursive Common Table Expression. SQL is generally poor at recursive structures, but it is now possible on MySQL to write recursive queries. Before MySQL 8.0, recursion was possible only by creating stored routines.

What is a Recursive Common Table Expression?

A recursive CTE is one having a subquery that refers to its own name. It is particularly useful in the following cases:

  • To generate series
  • Hierarchical or tree-structured data traversal
[Read more]
preFOSDEM MySQL Days: summary and slides

What a great event ! I got very positive feedback for this extended preFOSDEM MySQL Day 2020.

Before my summary, I wanted to thank again all speakers and attendees. Without you this event won’t even exist. And thank you to ICAB for hosting us yet another time !

As you may know, we had 2 parallel tracks for 2 consecutive days. We had very valuable technical content from the MySQL developers and also from the external community members who talked about their favorite database.

There was a large interest in MySQL NDB Cluster and it was obvious that the nice presentations we had, encouraged people to try the worlds highest performance open source in-memory database (and they can even test it on their laptop with DBDeployer). The NDB users were also happy with the new stuff and impressive numbers that Bernd

[Read more]
NDB Cluster, the World's Fastest Key-Value Store

Using numbers produced already with MySQL Cluster 7.6.10 we have
shown that NDB Cluster is the world's fastest Key-Value store using
the Yahoo Cloud Serving Benchmark (YCSB) Workload A.

Presentation at

We reached 1.4M operations using 2 Data Nodes and 2.8M operations
using a 4 Data Node setup. All this using a standard JDBC driver.
Obviously using a specialised ClusterJ client will improve performance
further. These benchmarks was executed by Bernd Ocklin.

The benchmark was executed in the Oracle Cloud. Each Data Node used
a Bare Metal Server using DenseIO which have 52 CPU cores with
8 NVMe drives.

The MySQL Servers and Benchmark clients was executed on Bare Metal
servers with 2 MySQL Server per server (1 MySQL Server per …

[Read more]
What to Look for if Your MySQL Replication is Lagging

A master/slave replication cluster setup is a common use case in most organizations. Using MySQL Replication enables your data to be replicated across different environments and guarantees that the information gets copied. It is asynchronous and single-threaded (by default), but replication also allows you to configure it to be synchronous (or actually “semi-synchronous”) and can run slave thread to multiple threads or in parallels.

This idea is very common and usually arrives with a simple setup, making its slave serving as its recovery or for backup solutions. However, this always comes to a price especially when bad queries (such as lack of primary or unique keys) are replicated or some …

[Read more]
MySQL Day – the Uber Experience

Last week, we had two exceptional preFOSDEM MySQL Days in Brussels. A lot of MySQL Engineers presented their work but also different MySQL Users. I will publish soon an overview of the two days, but today let me share with you an interview I did with Giedrius Jaraminas, engineering manager of MySQL team in Uber.

MySQL is heart of the Uber infrastructure“, this is how Giedrius started his presentation “Group Replication in Uber“.

The interview:

Q1: Tell us about yourself, and your experience with  MySQL

A1:  I am a database guy for 28 years, but I am relatively new to MySQL – I am a manager of MySQL team for only 3.5 years.

Q2:  Tell us about your company, and how MySQL is used.

A2:  MySQL is the main offer as a relational database, also – it is used as the …

[Read more]
Introduction to MySQL 8.0 Common Table Expressions (Part 1)

This blog is the first part of a two-articles series. In this article, I’m going to introduce the Common Table Expression (CTE), a new feature available on MySQL 8.0, as well as Percona Server for MySQL 8.

What is a Common Table Expression?

We can define a CTE as an alternative to a derived table. In a small way, CTE simplifies complex joins and subqueries, improving the readability of the queries. CTE is part of ANSI SQL 99 and was introduced in MySQL 8.0.1. The same feature is available even on Percona Server for MySQL 8.0.

The main reasons for using CTE are:

  • Better readability of the queries
  • Can be referenced multiple times in the same query
  • Improved performance
  • A valid alternative to a VIEW, if your user cannot create VIEWs
  • Easier chaining of multiple CTE …
[Read more]
Showing entries 1 to 10 of 42565
10 Older Entries »