Recently we published the first part of research comparing
Graviton (ARM) with AMD and Intel CPU on AWS. In the first
part, we selected general-purpose EC2 instances with the same
configurations (amount of vCPU). The main goal was to see
the trend and make a general comparison of CPU types on the AWS
platform only for MySQL. We didn’t set the goal to compare the
performance of different CPU types. Our expertise is in MySQL
performance tuning. We share research “as is” with all scripts,
and anyone interested could rerun and reproduce it.
All scripts, raw logs and additional plots are available on
GitHub: (2021_10_arm_cpu_comparison_c5, …
Multi column indexes are a powerful way to speed up queries but they are often misunderstood. In most other databases an index on columns a, b, and c can only be used when searching on columns (a,b,& c), (a & b), and (a) -- according to the manual. Also that index supposedly can not be used to search for (b & c) or just (c). Well, that is the way I learned it and the way I have been teaching it. But I was wrong! Now would be a good time to read the MySQL manual on Multiple-Column Indexes as it does not work as noted (or see the excerpt below) and I assumed MySQL worked the same way as the other databases. Well, it doesn't!
Doubt me? Well, lets create table and add in some data.
Table and Data
SQL > create table abcd (a serial …
[Read more]Recently, I saw many interest in understanding and getting information about database locking.
MySQL InnoDB’s locking can be complex and having an overview not always simple.
For more information about how InnoDB locking is working, I can only recommend this excellent series of articles by Kuba:
- https://dev.mysql.com/blog-archive/innodb-data-locking-part-1-introduction/
- https://dev.mysql.com/blog-archive/innodb-data-locking-part-2-locks/
- https://dev.mysql.com/blog-archive/innodb-data-locking-part-2-5-locks-deeper-dive/
- …
RDS(Relational Database Service) comes under “Database” services of AWS(Amazon Web Services) Cloud. In this article, we will see how to create an RDS MySql Instance, provision and terminate it.
MySQL InnoDB Cluster is the official High Availability solution for and from MySQL.
MySQL InnoDB Cluster is composed by MySQL Server, MySQL Group Replication, MySQL Router and MySQL Shell.
Before InnoDB Cluster there was no standard solution for MySQL Availability and many custom solutions were used (some better than the others). But there was a good solution using some similar principles of MySQL Group Replication: Galera.
Now that MySQL InnoDB Cluster is mature and easier to orchestrate than galera, I receive a lot of requests on how to migrate from Galera (or Percona XtraDB Cluster) to MySQL InnoDB Cluster.
I already wrote some time ago an article on this process: how to migrate from Galera to MySQL Group Replication.
In this article we will see how we can migrate from Percona XtraDB …
[Read more]I use CodeIgniter 4 a great deal for learning, personal projects, and application development. In this post, I cover 2 different methods you can use and retrieve the MySQL Last Insert ID value after executing an INSERT statement in CodeIgniter. Continue reading for more information…
Self-Promotion:
If you enjoy the content written here, by all means, share this blog and your favorite post(s) with others who may benefit from or like it as well. Since coffee is my favorite drink, you can even buy me one if you would like!
Model Setup
Starting out, I use the CLI Generator feature and create a Model by executing this code in the terminal in the project root:
php spark make:model user --suffix
I have removed much of the …
[Read more]This is a new era in deploying, managing and monitoring your Galera Cluster for MySQL, with the recently released Galera Manager, now Generally Available (GA). Galera Manager is a web-based graphical user interface (GUI) tool that allows you to fully manage clusters in Amazon Web Services, you can also deploy clusters on user provided hosts (on premise or in the cloud) and you can also fully monitor your existing clusters.
In this Webinar, we will cover:
- Deploying a fully managed cluster in AWS
- Deploying a cluster on user-provided hosts
- Monitoring an existing cluster
- How we have chosen to use CLONE SST for MySQL 8 deployments
- How you can successfully deploy all the various servers that we support
- Utilising the over 600 monitoring metrics to effectively manage your Galera Cluster
…
[Read more]When you use MySQL Shell with extra Python plugins (like these available on GitHub), sometimes, you could need extra Python modules.
Some of my plugins require requests
and
prettytable
for example.
MySQL 8.0.26 uses embedded Python 3.9 and if your system doesn’t have that version (like Oracle Linux 8), you won’t be able to install the missing module.
So how could we install the missing modules ? The easiest method is to use PIP, but if you don’t have PIP for Python 3.9 installed on the system, this will be more complicated…. not really !
This how to install PIP in MySQL Shell:
wget https://bootstrap.pypa.io/get-pip.py mysqlsh --py -f get-pip.py
And now you can use PIP to install extra modules:
mysqlsh --pym pip …[Read more]
I’m active on multiple platforms (mail, slack, forums, …) and often, when people are looking for help, the first 5 or 10 questions are always the same:
- which version of MySQL are you running ?
- which OS ?
- is it in the cloud ?
- which provider ?
- are you using replication ?
- GTIDs ?
- ….
I’ve added to MySQL Shell Plugin repository and plugin called support which provides an output that user can share when looking for MySQL help.
Usually, I’m focusing only in MySQL 8.0, but this plugin works with older versions too (don’t try MySQL 3.23…. it should be compatible from 5.6).
Let’s see an output if I run it locally:
[fred@fedora ~] $ mysqlsh root@localhost -e "support.fetchInfo()" …[Read more]
Recently, AWS presented its own CPU on ARM architecture for server solutions.
It was Graviton. As a result, they update some lines of their EC2 instances with new postfix “g” (e.g. m6g.small, r5g.nano, etc.). In their review and presentation, AWS showed impressive results that it is faster in some benchmarks up to 20 percent. On the other hand, some reviewers said that Graviton does not show any significant results and, in some cases, showed fewer performance results than Intel.
We decided to investigate it and do our research regarding Graviton performance, comparing it with other CPUs (Intel and AMD) directly for MySQL.
Disclaimer
- The test is designed to be CPU bound only, so we will use a read-only test and make sure there is no I/O activity during the test.
- Tests were run on m5.* (Intel) , m5a.* (AMD), m6g.*(Graviton) EC2 instances in the US-EAST-1 region. (List of EC2 see …