Dear MySQL users,
MySQL Connector/ODBC 8.0.24 is a new version in the MySQL
Connector/ODBC
8.0 series, the ODBC driver for the MySQL Server.
The available downloads include both a Unicode driver and an ANSI
driver
based on the same modern codebase. Please select the driver type
you
need based on the type of your application – Unicode or
ANSI.
Server-side prepared statements are enabled by default. It is
suitable
for use with the latest MySQL server version 8.0.
This release of the MySQL ODBC driver is conforming to the ODBC
3.8
specification. It contains implementations of key 3.8
features,
including self-identification as a ODBC 3.8 driver, streaming of
out (for
binary types only), and support of the
SQL_ATTR_RESET_CONNECTION
connection attribute (for the Unicode driver only).
The release is now available in source and …
Dear MySQL users,
MySQL Connector/Python 8.0.24 is the latest GA release version of
the
MySQL Connector Python 8.0 series. The X DevAPI enables
application
developers to write code that combines the strengths of the
relational
and document models using a modern, NoSQL-like syntax that does
not
assume previous experience writing traditional SQL.
To learn more about how to write applications using the X DevAPI,
see
http://dev.mysql.com/doc/x-devapi-userguide/en/
For more information about how the X DevAPI is implemented in
MySQL
Connector/Python, and its usage, see
http://dev.mysql.com/doc/dev/connector-python
Please note that the X DevAPI …
MySQL Group Replication is a plugin that helps to implement highly available fault-tolerant replication topologies. In this blog, I am going to explain the complete steps involved in the below two topics.
- How to convert the group replication member to an asynchronous replica
- How to convert the asynchronous replica to a group replication member
Why Am I Converting From GR Back to Old Async?
Recently I had a requirement from one of our customers running 5 node GR clusters. Once a month they are doing the bulk read job for generating the business reports. When they are doing the job, it affects the overall cluster performance because of the flow control issues. The node which is executing the read job is overloaded and delays the certification and writes apply process. The read job queries can’t be split across the cluster. So, they don’t want that …
[Read more]
In this blog, we will discuss about how to perform cluster
configuration changes while cluster is up and processing
transactions (online).
In MySQL NDB Cluster, configuration data is parsed and
distributed by the management server (MGMD) nodes. Users supply
an input text file (commonly known as config.ini) which describes
cluster topology, resource usage limits and other parameters. The
MGMD nodes parse this file, combine it with designed in defaults
and serve the resulting configuration to other node types (data
nodes, api nodes), when they connect.
Reasons for changing configuration might include:
- Increased resource usage limits (Data memory, IndexMemory,
buffers)
- Adding a new configuration parameter(s) i.e. enabling a new
feature
- Unsupported configuration parameter taken out during downgrade
to lower version i.e. disabling a feature
- etc ..
MySQL Cluster nodes pick …
In this blog series, I’m describing how InnoDB locks data (tables and rows) in order to provide illusion to clients that their queries are executed one after another, and how this was improved in recent releases.
So far we saw that access right currently granted and waiting to be granted are represented as record locks and table locks objects in memory, which we can inspect via performance_schema.data_locks.…
Facebook Twitter LinkedIn
At some points, many of our customers need to handle insertions of large data sets and run into slow insert statements. This article will try to give some guidance on how to speed up slow INSERT SQL queries.
The following recommendations may help optimize your data loading operations:
-
Remove existing indexes - Inserting data to a MySQL table will slow down once you add more and more indexes. Therefore, if you're loading data to a new table, it's best to load it to a table without any indexes, and only then create the indexes, once the data was loaded.
When you're inserting records, the database needs to update the indexes on every insert, which is costly in terms of performance. It's much faster to insert all records without indexing them, and then create the indexes once for the entire table.
…
Another common question I receive about MySQL Shell Dump & Load Utility is how to dump a schema and load it with another name. Make a copy in fact.
Dumping the Schema
To do so, we need to use the dumpTables()
method:
JS util.dumpTables("test", [], "/tmp/dump", {all: true})
It is important to notice that the second parameter is an empty
array and the option “all
” is enabled.
This will dump all tables of the test
schena into
/tmp/dump
.
Loading the data into another Schema
Now, we will load the data we previously dump into another schema.
The first thing to do is to create the destination schema:
JS \sql create database test2
And finally, we load the data:
JS …[Read more]
In this blog series, I’m describing how InnoDB locks data (tables and rows) in order to provide illusion to clients that their queries are executed one after another, and how this was improved in recent releases.
As we’ve already seen, the order in which server pretends transactions are happening (the serialization order) is tied to the order in which locks are granted to transactions.…
Facebook Twitter LinkedIn
While I was working on my grFailOver POC, I have also done some additional parallel testing. One of them was to see how online DDL is executed inside a Group Replication cluster.
The online DDL feature provides support for instant and in-place table alterations and concurrent DML. Checking the Group Replication (GR) official documentation, I was trying to identify if any limitation exists, but the only thing I have found was this:
“Concurrent DDL versus DML Operations. Concurrent data definition statements and data manipulation statements executing against the same object but on different servers is not supported when using multi-primary mode. During execution of Data Definition Language (DDL) statements on an object, executing concurrent Data Manipulation Language (DML) on the …
[Read more]As you know, the best way to perform logical dump for MySQL is to use MySQL Shell Dump & Load utilities. This is the most powerful option as it can dump and load in parallel (it also include many options to migrate to MDS very easily and supports OCI Object Store too).
One of the main question I receive related to MySQL Shell utility is related to the use of MySQL Shell in non-interactive mode with parameters requiring arrays.
What does that mean ?
For example if you want to dump a MySQL instance but you want to
exclude some tables, you have an option called
excludeSchemas
and it expect an array of strings
with the list of schemas you want to exclude in the dumb.
In interactive mode, this is how we use it:
JS> util.dumpInstance("/tmp/dump", {excludeSchemas: ["mysql_innodb_cluster_metadata", "fred_test"], threads: 8, showProgress: true})
However this notation is not …
[Read more]