Three weeks ago, I released the Pluto Beta of Planet for the MySQL Community. Since then, a few things changed and I think it is worth doing an update to the Ecosystem. The change I am the most happy about is that Ivan Groenewold started helping with the project (you can find him in the people of the oursqlcommunity.org GitHub organization). So Planet for the MySQL Community is
A common MySQL strategy to perform updates with accumulating
functions is to employ user-defined variables, using the
UPDATE [...] SET mycol = (@myvar := EXPRESSION(@myvar,
mycol)) pattern.
This pattern though doesn’t play well with the optimizer (leading to non-deterministic behavior), so it has been deprecated. This left a sort of void, since the (relatively) sophisticated logic is now harder to reproduce, at least with the same simplicity.
In this article, I’ll have a look at two ways to apply such logic: using, canonically, window functions, and, a bit more creatively, using recursive CTEs.
[Read more]First I want to thank everyone who attended my May 21, 2020 webinar “How Safe is Asynchronous Master-Master Setup in MySQL?“. Recording and slides are available on the webinar page.
Here are answers to the questions from participants which I was not able to provide during the webinar.
Q: What do you generally think of hosting Relational Databases on VM’s as opposed to Bare metals?
A: With modern hardware and modern virtual machines this is absolutely possible. I know about many successful high loaded applications that run MySQL on VMs.
Just note that running a few VMs on a single physical machine may lead to resource loss rather than saving. For …
[Read more]With this post we are reaching the end of our journey to HA for WordPress & MySQL 8.0 on OCI.
If you have not read the two previous articles, this is just the right time.
- MySQL 8.0 InnoDB ReplicaSet with WordPress in OCI
- MySQL 8.0 InnoDB ReplicaSet with WordPress in OCI – part II
We started this trip using the MySQL InnoDB ReplicaSet where only 2 servers are sufficient but doesn’t provide automatic fail-over.
In this article we will upgrade our InnoDB ReplicaSet to …
[Read more]Managing global counters in a multi-threaded system has always been challenging. They pose serious scalability challenges. Introduction of NUMA just increased the complexity. Fortunately multiple options have been discovered with hardware lending support to help solve/ease some of these issues. In this blog we will go over how we can make Global Counter NUMA SMART and also see what performance impact each of this approach has.
Note: a lot of this work is inspired from MySQL codebase that is continuously trying to evolve to solve this issue.
Global Counters
Most of the software (for example: database, web-server, etc…) needs to maintain some global counters. Being global, there is one copy of these counters and multiple worker threads try to update it. Of-course this invites a need of coordination while updating these copies and in turn it becomes scalability hotspots.
Alternative is to loosely maintain these …
[Read more]MySQL does not limit the number of slaves that you can connect to the master server in a replication topology. However, as the number of slaves increases, they will have a toll on the master resources because the binary logs will need to be served to different slaves working at different speeds. If the data churn on the master is high, the serving of binary logs alone could saturate the network interface of the master.
A classic solution for this problem is to deploy a binlog server – an intermediate proxy server that sits between the master and its slaves. The binlog server is set up as a slave to the master, and in turn, acts as a master to the original set of slaves. It receives binary log events from the master, does not apply these events, but serves them to all the other slaves. This way, the load on the master is tremendously reduced, and at the same time, the binlog server serves …
[Read more]
How to Audit only DML Actions ?
Step by step to
Enable Fine Grained MySQL Auditing for Insert/Update/Delete
Queries for all Users.
Before i talk about MySQL Audit Filtering , it is more important
to know below details:-
- What is MySQL Enterprise Audit ?
- Features of MySQL Audit.
- Why Audit is Important?
- How to Audit only DML statements for Particular/All Users ?
- Audit Log Restrictions
- Conclusions
What is MySQL Enterprise Audit? At high level, database auditing is the process to guard against misuse of information, track the use of database resources and activity like -Who accessed the database(Users) - Where these queries has been executed(Host Name). -What kind of queries has been executed to db(events/statements). -When did this happened(Time) Then we can have idea of “Why this …
[Read more]
Introduction Before I talk about installation of MySQL inside
docker, it's more important to know
what is Docker?
- Docker
is a tool designed to create , deploy ,and run an application any
where.
-It allow us to package up application with all requirements such
as libraries and other dependencies and ship it all as a
PACKAGE.
who uses Docker?
Developer : Docker enables developer to develop application
without spending much time on IT infrastructure.
Sysadmin :-Docker enables sysadmin to streamline the
software delivery, such as develop and deploy bug fixes and new
features without any roadblock.
Enterprise :-Docker works in the cloud , on premise ,and
supports both traditional and micro services deployments.
why Docker?
-Easily adapts to your working environment. …
Glimpse of MySQL Enterprise Data Masking
Abstract- Many organizational production
environment unwittingly breach sensitive information which causes
harm of reputation, brand name and million of dollar losses etc.
hence database environments will require some form of
sanitization in order to render the informational content
anonymous. In this paper, we outline research towards a business
challenge-why mask your data and the business value- benefits of
masked data. We describe a definition of concept, performance
measurements of sql query with/without masked data and limitation
of data masking with current release of MySQL. …
Introduction MySQL offers two types of clustering solution for
managing Read/Write intensive workloads , ensuring Rock Solid
Availability. 1.MySQL InnoDB Cluster
2. MySQL NDB Cluster Glimpse of MySQL InnoDB Cluster
This Cluster is designed for users that uses MySQL
Server with InnoDB storage engine. It will serve as
a natural extension for users currently using MySQL Replication
with InnoDB to a new replication
architecture i.e Clustering on top of Group Replication. MySQL
InnoDB Cluster = MySQL Server + MySQL Shell + MySQL Router. MySQL
Server
- Group Replication Technology.
- Single-Primary /Multi-Primary Mode.
- Fault Tolerance.
- Conflict detection and resolution.
- Automatic distributed recovery.
MySQL Shell
- Multi-Language(Python , Java script , SQL). …