17 Years of Insecure MySQL Client !
J-F Gagné's MySQL Blog
by Jean-François Gagné
3w ago
Yes, this is a catchy title, but it is true, and it got you reading this post :-).  Another title could have been “Please load this mysql-dump: what could go wrong ?”.  As you guessed, loading a dump is not a risk-free operation.  In this post, I explain how the insecure MySQL client makes this operation risky and how to protect against it. And if you think this post is not ..read more
Visit website
Dbdeployer Tutorial on Mac
J-F Gagné's MySQL Blog
by Jean-François Gagné
3w ago
Not very long ago (well, maybe a little longer, this post is in draft for more than a year), in the spawn of less than 5 days, I suggested many colleagues to reproduce a problem they had with MySQL in a "more simple environment".  Such more simple environment can be created with dbdeployer.  dbdeployer is a tool to create "MySQL Sandboxes" on a Mac (laptop or desktop) or on Linux (vm ..read more
Visit website
Rows Examined Blindspot when Looking for non-Existing Data
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
When trying to understand queries in the slow log, an interesting metric to look at is rows examined.  Also, when trying to understand CPU spikes on a MySQL instance, the InnoDB Metric dml_reads and the global status Innodb_rows_read are interesting to check.  In a similar way, when trying to gather information about which queries are loading the system, SUM_ROWS_EXAMINED from the Performance ..read more
Visit website
Avoiding a STOP SLAVE Crash with MTR in Percona Server older than 5.7.37-40
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
I am finalizing my Percona Live talk MySQL and Vitess (and Kubernetes) at HubSpot.  In this talk, I mentioned that I like that Percona is providing better MySQL with Percona Server.  This comes with a little inconvenience though: with improvements, sometimes comes regression.  This post is about such regression and a workaround I implemented some time ago (I should have shared it earlier).  This ..read more
Visit website
Running and Mountain Climbing at Percona Live Denver
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
I just booked my travel arrangements for Percona Live 2023.  In case you missed it, one of the most important MySQL Conference of the year is happening in Denver from Monday May 22 to Wednesday 24.  I will be there and I am giving a talk about how HubSpot operates Percona Server / MySQL with Vitess in Kubernetes.  My colleague, Mali Akmanalp, is also speaking about the tools we provide developers ..read more
Visit website
Planet for the MySQL Community Graduating from Beta
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
In May 2020, I published a Planet for the MySQL Community Pluto Beta.  I was satisfied with the result and was considering it done, but I did not invest the time to promote it to release (a non-beta site was running for a few months without being advertised).  I finally came to it, and today I am happy to deprecate the beta and announce the release of Planet for the MySQL Community.  In this post ..read more
Visit website
Free Page Consumption by InnoDB Table Compression (Percona backoff Algo. part #2)
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
In my previous post about InnoDB Stalls on Empty Free List, I used a test environment that might look a little artificial : a table larger than the InnoDB Buffer Pool but fitting in the Linux Page Cache.  This configuration allows serving very quickly what MySQL thinks are IOs because these are hit in the filesystem cache.  In this post, I explain why this environment is not totally artificial ..read more
Visit website
Tail Latencies in Percona Server because of InnoDB Stalls on Empty Free List
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
If, in Percona Server, you are observing tail latencies on queries that should be fast, this might be a side effect of Percona's improved InnoDB Empty Free List Algorithm.  When using this algorithm (the default in 5.6 and 5.7 and optional configuration in 8.0), a query needing a free page while none are available waits until the LRU Manager Thread refills the free list.  Because this thread is ..read more
Visit website
Bad Optimizer Plan on Queries Combining WHERE, ORDER BY and LIMIT
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
Sometimes, the MySQL Optimizer chooses a wrong plan, and a query that should execute in less than 0.1 second ends-up running for 12 minutes !  This is not a new problem: bugs about this can be traced back to 2014, and a blog post on the subject dates of 2015.  But even if this is old news, because this problem recently came to my attention, it is a problem worth writing on. This is an improved ..read more
Visit website
Triggering Replication Lag for Testing a Script
J-F Gagné's MySQL Blog
by Jean-François Gagné
8M ago
I am currently working on a script to auto-enable parallel replication / multi-threaded replication (MTR) when there is replication lag.  For testing this script, I need to trigger replication lag that would disappear after enabling MTR.  I came-up with a simple solution for that, and I thought it could be useful to more people, so I am writing this blog post about it.  Read-on for the details ..read more
Visit website

Follow J-F Gagné's MySQL Blog on FeedSpot

Continue with Google
Continue with Apple
OR