Showing entries 1 to 10 of 307
10 Older Entries »
Displaying posts with tag: MySQL 8.0 (reset)
Make way for the High Performance Parallel Dump & Load Utilities + How to use them

MySQL-Shell has had a set of “Util” object functions for almost a year as of this post. It is this added functionality that negates any reason someone would still need to use the old mysqldump client. It (mysqldump) helped the MySQL Community for a long, long time. It also introduced a large amount of garbage and messiness in… Read More »

Using OpenVPN with MySQL Database Service

I’ve already provided some solutions to connect to your MDS instance, using MySQL Router, SSH tunnel, … but one of the best way if you have multiple instance to manage, is to use a VPN.

This post summarize the steps on how to deploy Open VPN and configure your VCN to use it.

So, in OCI, we have already some MDS & Compute instances deployed, this is how the dashboard looks like:

OpenVPN Deployment

We can start by deploying our OpenVPN instance using OCI’s Marketplace:

And you follow the wizard by adding your administrator username and password:

An important step is to use the existing VCN and place the OpenVPN in the public subnet:

And you create the instance:

[Read more]
Deploy WordPress on OCI using MDS – updated version

This blog post was first published on

Hello fine gourmets, for my first dish in the, I decide to present you how to deploy WordPress on OCI using MySQL Database Service aka MDS.

I wrote some Terraform recipes that you can find on my GitHub repository: oci-wordpress-mds.

In this first post, I will show how easy it’s to deploy directly from OCI’s dashboard using Resource Manager’s stack. I will also share the recent additions.

The first think to do is to download the stack in releases from GitHub:

When the zip file is downloaded locally, you can login in …

[Read more]
Fastest Parallel replication method in MySQL 8.

From MySQL 5.7, we had a Multi-threaded Slave (MTS) Applier mechanism called LOGICAL_CLOCK to overcome the problems of parallel replication within a database.

To further improve the parallelisation mechanism, from MySQL 8 (5.7.22) we have write-set replication, so before going further , lets look at the difference between Logical clock (LC) and Writeset.


Transactions that are part of the same binary log group commit on a master are applied in parallel on a slave. The dependencies between transactions are tracked based on their timestamps to provide additional parallelisation where possible.


Write-set is a mechanism to track independent transactions that can be executed in parallel in the slave. Parallelising on write sets has potentially much more parallelism than logical_clock ,since it does not depend …

[Read more]
MySQL Query Attributes


Query attributes have in a long time been used to add metadata to queries to provide additional context such as where in the application the query was generated. The traditional way to do this is to add a comment at the start of the query with the attributes. Since the MySQL parser ignores the comment, it does not change the semantics of the query, but various tools can extract the comments.

This post looks into the reasons for using query attributes, how it is done using a comment, and the new component for MySQL 8.0.23 that provides native support for query attributes.


Query attributes are also known as query tags.

Why Query Attributes?

At the surface, it may seem that there is no major benefit from having metadata …

[Read more]
MySQL Invisible Column: part III

We recently saw how the new Invisible Column feature works in MySQL since 8.0.23 and how we can use it as a Primary Key for InnoDB tables when no Primary Key was defined.

As I wrote earlier, a good Primary Key is important for InnoDB (storage, IOPS, secondary indexes, memory…) but there is another important domain where a Primary Key is important in MySQL: replication !

Asynchronous Replication

When using “traditional” replication, if you modify a record (UPDATE and DELETE), the record(s) to modify on the replica are identified using indexes, and of course the Primary Key if any. The hidden global 6-bytes auto generated by InnoDB primary key is never used as never exposed and as it’s global, …

[Read more]
MySQL Invisible Column: part II

This article is the second part of the series related to MySQL Invisible Column started here.

This post covers why Invisible Column is important for InnoDB Storage Engine.

To start, let me explain briefly how InnoDB deals with Primary Key and why an good primary key is important. And finally, why having a Primary Key is also important.

How does InnoDB Stores Data?

InnoDB stores data in table spaces. The records are stored and sorted using the clustered index (the primary key): they are called index-organized tables.

All secondary indexes also contain the primary key as the right-most column in the index (even if this is not exposed). That means when a secondary …

[Read more]
MySQL Invisible Column – part I

With the new MySQL 8.0.23, something very interesting has been released: Invisible Column.

This is the first post dedicated to this new feature, I expect to write a series of 3. This one is the introduction.

Prior to MySQL 8.0.23, all columns of a table were always visible (if you had the privilege to see it). Now, an invisible column can be specified and will be hidden to queries. It can always be accessed if explicitly referenced.

Let’s see how it works:

create table table1 (
   id int auto_increment primary key, 
   name varchar(20), 
   age int invisible);

In the table description we can see the INVISIBLE keyword in the Extra column:

desc table1; …
[Read more]
MySQL 8.0.23: thank you for the contributions

The expected version 8.0.23 of MySQL has been released yesterday \o/

For new features and resolved bugs, I recommend Geir‘s traditional blog post announcing the release.

Of course, as usual, this release contains contributions from our great Community and let me thanks all the contributors on behalf of the MySQL Team.

MySQL 8.0.23 includes contributions from Daniel Black, Vilnis Termanis, Venkatesh Prasad Venugopal, Daniël van Eeden, Cai Yibo, Kamil Holubick, Shaohua Wang, Krunal Bauskar, Tzachi Zidenberg, Cédric Luthi, Brian Yue, Hope Lee and Facebook.

Thank you all for your great contributions. MySQL is an Open Source project, GPL, …

[Read more]
Deploying Drupal in OCI using MDS: the easy way !

If you plan to deploy a Drupal site to OCI using MySQL Database Service, there is a very easy way to perform that deployment: using OCI’s Resource Manager !

As you know, security is something very important for Oracle in OCI, therefor, exposing the database on the Internet is not allowed.

Even if you are not using OCI, I really recommend you to follow that principle and never expose your database to Internet !

I already cover this in many previous posts. But I also understand that for people not being a sysadmin, this can be complicated the first time.

That’s why, all this can be automated using a stack to deploy in Resource Manager.

The first thing to do when you have your OCI account, it’s to download the stack from GitHub:

Then in OCI’s dashboard, just …

[Read more]
Showing entries 1 to 10 of 307
10 Older Entries »