MySQL is not only a relational database, but can also be used as a schemaless/NOSQL document store, or a mix of both. This is realized by the JSON datatype, and is useful for any data that is hard to fit in the ”tabular” format of a traditional table.…
7 Older Entries »
MySQL 8.0.1 introduced a work with replication threads mutexes
in order to improve performance. In MySQL
8.0.2 the same work was extended, focusing in
usability, and revamped how replication deals
with disk-full conditions, improving the responsiveness of both
monitoring commands and administrative commands such as
KILL, as well as making status messages much more
precise and helpful.…
Welcome to another post in our series of interview blogs for the upcoming Percona Live Europe 2017 in Dublin. This series highlights a number of talks that will be at the conference and gives a short preview of what attendees can expect to learn from the presenter.
This blog post is with Charity Majors, CEO/Cofounder of Honeycomb. Her talk is Debugging with Logs (and Other Events). Her presentation covers some of the lessons every engineer should know (and often learns the hard way): why good logging solutions are so expensive, why treating your logs as strings can be costly and dangerous, how logs can impact code …[Read more]
A good portion of the startups I meet and advise want to use the
newest, hottest technology to build something that’s cool, but
not technologically groundbreaking. I have yet to meet a startup
building a time machine, teleporter or quantum social network
that would actually require some amazing new tech. They have
awesome new ideas with down-to-earth technical requirements, so I
kept wondering why they choose this shiny (and risky) new stuff
when all they need is a good ol’ trustworthy database. I think
it’s because many assume that building the latest and greatest
needs the latest and greatest!
It turns out that’s only one of three bad reasons (traps) why people go for the shiny and new. Reason two is people mistakenly assume older stuff is slow, not feature rich or won’t scale. “MySQL is sluggish,” they say. “Java is slow,” I’ve heard. “Python won’t scale,” they claim. None of it’s true.
With MySQL Enterprise Backup(MEB) 3.9.0 we had introduced
full instance backup feature for cloning the
MySQL server. Now with MEB 3.11.0 we have enhanced the feature by
copying all the master-slave setup files like MySQL server binary
logs(will be referred as 'binlogs'), binary log index files,
relay logs of slave, relay log index files, master info of slave,
slave info files. As part of full instance backup, copying of
binlog files is default behavior MEB-3.11.0 onwards. DBA should
be aware of the fact that current full instance backup is bigger
than the backups with old MEB's.
As every event on MySQL production database goes as a entry to binlog files in particular format, binlog files could be huge. Backing of huge binlog and/or relaylog files should not impact the performance of MySQL server. Hence, all the binlog files, …
3Ci processes over a billion transactions a month. More than 100 million unique U.S. consumers have engaged with a business through our platform. All that activity creates massive amounts of data. The Data Team at 3Ci is responsible for keeping our offerings running at optimal performance and for making sense of our data. They manage MySQL [...] …[Read more]
In one of my previous posts, “How to resize InnoDB logs?”, I gave the advice on how to safely change the size of transaction logs. This time, I will explain why doing it may become necessary.
A brief introduction to InnoDB transaction logs
The transaction logs handle REDO logging, which means they keep the record of all recent modifications performed by queries in any InnoDB table. But they are a lot more than just an archive of transactions. The logs play important part in the process of handling writes. When a transaction commits, InnoDB synchronously makes a note of any changes into the log, while updating the actual table files happens asynchronously and may take place much later. Each log entry is assigned a Log Sequence Number – an incremental value that always uniquely identifies a change.
If you love a software product, you should try to improve it, and not be afraid of criticizing it. This principle has guided me with MySQL (where I have submitted many usability bugs, and discussed interface with developers for years), and it proves true for Tungsten Replicator as well. When I started working at Continuent, while I was impressed by the technology, I found the installation procedure and the product logs quite discouraging. I would almost say disturbing. Fortunately, my colleagues have agreed on my usability focus, and we can enjoy some tangible improvements. I have already mentioned the new installation procedure, which requires just one command to install a full master/slave cluster. I would like to show how you can use the new installer to deploy a multiple source …[Read more]
The MySQL general log is one of my favorite features for a
quick debug. I especially like the ability of starting and
stopping it on demand, which was introduced in MySQL 5.1.
However, using the general log has its drawbacks.
Today I was debugging a nasty bug that results from two statements that should be applied sequentially, but that were instead concurrent. These kind of problems are hard to cope with, as they are intermittent. Sometimes all goes well, and you get the expected result. And then, sometimes the statements fly on different directions and I stare at the screen, trying to understand where did they stray.
After some try-and-fail, I decided to enable the general log just before the offending statements, and to turn it down immediately after. Guess what? With the general log on, the test never failed. What was an intermittently …
Initially I just intended for the tool to be able to dump the general log to standard output, from any machine capable to connect to MySQL. Quick enough, I realized the power it brings.
With this tool, one can dump to standard output all queries using temporary tables; or using a specific index; or doing a full index scan; or just follow up on connections; or… For example, the following execution will only log queries which make for filesort:
oak-hook-general-log --user=root --host=localhost --password=123456 --filter-explain-filesort
The problem with using the standard logs
So you …[Read more]
7 Older Entries »