Query planning is hard # Have you ever wondered what goes on behind the scenes when you execute a SQL query? What steps are taken to access your data? In this article, I'll talk about the history of Vitess's V3 query planner, why we created a new query planner, and the development of the new Gen4 query planner. Vitess is a horizontally scalable database solution which means that a single table can be spread out across multiple database instances.
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]Running Java in the cloud helps lower costs, speed up operations, and simplify the deployment.
Running Java in the cloud helps lower costs, speed up operations, and simplify the deployment.
As a developer using Python, I want to be able to hand a
list to an SQL statement with a WHERE id IN
(…) clause, and it should do the right thing.
Well, that is not how it started, because it was asked on the internal no-work-channel, so it kind of escalated more.
The original question was:
Dev> Why is it 2021, and SQL prepared statements still can’t deal with IN? Or have I missed some exciting development?
After a quick detour through Java (which we won’t discuss any further in this article), we established that this was a Python problem in this particular instance. And we touched on several other interesting things on our way.
But first, the solution:
#! /usr/bin/env python3
import click
import MySQLdb
import MySQLdb.cursors
class …[Read more]
As a developer using Python, I want to be able to hand a
list to an SQL statement with a WHERE id IN
(…) clause, and it should do the right thing.
Well, that is not how it started, because it was asked on the internal no-work-channel, so it kind of escalated more.
A question
The original question was:
Dev> Why is it 2021, and SQL prepared statements still can’t deal with IN? Or have I missed some exciting development?
After a quick detour through Java (which we won’t discuss any further in this article), we established that this was a Python problem in this particular instance. And we touched on several other interesting things on our way.
But first, the solution:
#! /usr/bin/env python3
import click
import MySQLdb
import MySQLdb.cursors
class DebugCursor(MySQLdb.cursors.DictCursor):
def _query(self, q):
print(f"Debug: {q}") …[Read more]
Histograms were introduced with MySQL 8.0 and are a valuable way of speeding up queries. The MySQL optimizer assumes that data in a column has evenly distributed values. Even distribution of data probably does not reflect much of the data sitting right now in your database.
The optimizer wants to find the most efficient
way to return the data requested in a query. If it has poor
information on that data, then the optimizer will make a
'guesstimate' that will will result in a query plan that will not
perform well. But if the optimizer has good information, in
this case provided by a histogram, then it can produce a better
query plan.
In the following example a able is filled with data
that is not evenly distributed. In the histogram image
following, the data is represented in what looks like a
rollercoaster side view.
…
The article provides an overview of the backup types available in MySQL and describes how-to examples of using the mysqldump command-line utility to take a backup of the database, tables, data, or schema and to restore the MySQL database. In addition, you can view how to generate a database backup with MySQL Workbench and how […]
The post Different Ways to Back up MySQL Databases and Tables appeared first on Devart Blog.
How to prevent connections to a MySQL server using a TLS certificate that has been revoked by a non-root certificate authority.
On behalf of the Vitess maintainers, I am pleased to announce the general availability of Vitess 12. Major Themes # In this release, Vitess Maintainers have made significant progress in several areas, including Gen4 planner, VTAdmin, and other improvements. Please take a moment to review the Release Notes. Please read them carefully and report any issues via GitHub. Gen4 Planner # The newest version of the query planner, Gen4, becomes an experimental feature as part of this release.